Php 上传图片附件并通过wp_邮件发送
我正在尝试制作一个表单,用户将能够附加图像文件,然后图像将作为附件通过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
<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>