我正在使用wordpress 4.4.2。
文件类型的表格代码:
<input placeholder="'.__( 'Select File', 'mk_framework' ).'" type="file" name="file" id="file" class="contact_file file-form select-input full"/>
我使用以下代码上传文件并将附件发送到电子邮件。
if ( ! function_exists( 'wp_handle_upload' ) ) {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
$uploadedfile = $_FILES['file'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile && ! isset( $movefile['error'] ) ) {
echo "File is valid, and was successfully uploaded.\n";
var_dump( $movefile );
$attachments = $movefile[ 'file' ];
} else {
echo $movefile['error'];
}
wp_mail($to, $subject, $body, $headers, $attachments);
我还在php.ini中增加了'upload_max_filesize和'post_max_size'变量的大小,但无法获得电子邮件的附件。
但它仍会给我一个错误:
文件为空。请上传更实质的内容。此错误也可能是由于php.ini中的上传被禁用或者post_max_size被定义为小于php.ini中的upload_max_filesize而引起的。
有没有办法做到这一点? 任何帮助/建议将不胜感激。
答案 0 :(得分:0)
迟到的答案;
您需要更改上传文件夹权限
像
chown -R www-data:www-data /var/www/html
您需要使用array
进行附件。
if ( ! function_exists( 'wp_handle_upload' ) ) {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
$uploadedfile = $_FILES['file'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile && ! isset( $movefile['error'] ) ) {
echo "File is valid, and was successfully uploaded.\n";
var_dump( $movefile );
$attachments = array($movefile[ 'file' ]);
} else {
echo $movefile['error'];
}
wp_mail($to, $subject, $body, $headers, $attachments);