Php 上传图片附件并通过wp_邮件发送

Php 上传图片附件并通过wp_邮件发送,php,html,wordpress,post,wp-mail,Php,Html,Wordpress,Post,Wp Mail,我正在尝试制作一个表单,用户将能够附加图像文件,然后图像将作为附件通过wp_邮件通过电子邮件发送。 以下是我迄今为止所做的工作: 附件按钮的代码: <div class="attachment-row"> <form method="POST" enctype="multipart/form-data"> <input type="file" class=&quo

我正在尝试制作一个表单,用户将能够附加图像文件,然后图像将作为附件通过wp_邮件通过电子邮件发送。 以下是我迄今为止所做的工作: 附件按钮的代码:

<div class="attachment-row">
   <form  method="POST" enctype="multipart/form-data">
        <input type="file" class="input-field" name="file">
   </form>
</div>
下面是我接收图像的方式(空白文件而不是图像附件)。我不知道我做错了什么,欢迎任何帮助。谢谢

编辑-我也尝试过这种方法(将文件名保存到变量中),但仍然不起作用

    $target_dir = WP_CONTENT_DIR . "/uploads/";
    $image_name=$_FILES['file'['name'];
    $target_file = $target_dir . basename($_FILES['file']['name']);
    move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
要注意的是,当我检查我的/wp content/uploads/folder时,我附加的图像不在那里-我猜图像没有保存,但我不知道为什么

再次编辑-我也尝试过这种方法,但再次无效:

           if ( ! function_exists( 'wp_handle_upload' ) ) {
                require_once( ABSPATH . 'wp-admin/includes/file.php' );
                echo "noo";

            }
            
            $uploadedfile       = $_FILES['file'];
            $upload_overrides   = array( 'test_form' => false );
            $movefile           = wp_handle_upload( $uploadedfile, $upload_overrides );
            
            if( $movefile ) {
                echo "File is valid, and was successfully uploaded.\n";
                var_dump( $movefile);
                $attachments = $movefile[ 'file' ];
                $mailResult = wp_mail( $to, $subject, $message, $headers, $attachments);
            } else {
            }
以及html表单:

       <form method="POST" enctype="multipart/form-data">
                                        <input type="file" class="input-field" name="file">
                                    </form>


我被卡住了,我不知道我做错了什么…

您将其保存为
“/uploads/”。basename($_FILES['file']['name'])
,但作为
“/uploads”发送$_文件['file']['name']
。将路径保存到变量并使用它everywhere@Justinas,我尝试过这种方法,但仍然不起作用:
$target\u dir=WP\u CONTENT\u dir。“/上传/”$图像_name=$_文件['file']['name']$target\u file=$target\u dir。basename($_FILES['file']['name']);移动上传的文件($文件[“文件”][“tmp文件名”],$目标文件)此外,如果我检查我的/wp内容/上传/文件夹,图像不会保存在那里实际上,WordPress有自己的上传功能,您可以使用,例如,或者如果您只想上传图像而不必为该图像创建附件(发布
附件
类型)。我也尝试过,不起作用,该图像未作为附件添加到电子邮件中,我得到:[“error”]=>string(34)“指定的文件未能通过上载测试。”}@user15480222,您是否确实上载了具有有效名称的有效图像文件,例如
image.jpg
       <form method="POST" enctype="multipart/form-data">
                                        <input type="file" class="input-field" name="file">
                                    </form>