Wordpress文件上传

时间:2017-06-23 11:12:57

标签: php wordpress file-upload

我有这个插件即时制作,在文件上传系统中我有这个:

$mimes = array('image/jpeg','image/jpg','image/gif','image/png','application/pdf');
if(in_array($_FILES['attach']['type'], $mimes)){
    $error = 0;
}
else {
    $error = 1;
}

然后,与其他错误检查一起,我将此文件上传到自定义文件夹

if($error == 0) {
    $folder = PLUGIN_DIR . '/uploads/';
    if(is_dir($folder)) {
        $file = $_FILES["attach"]["tmp_name"];
        move_uploaded_file($file, $folder.date('Ymd').'_'.$name);
    }
}

这完美无缺。我已经测试了,但这样做可以吗?或者有更好的方法吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

我认为最好使用此codex.wordpress.org

<?php
// We will check the protection of nonce and that the user can edit this post.
if ( 
    isset( $_POST['my_image_upload_nonce'], $_POST['post_id'] ) 
    && wp_verify_nonce( $_POST['my_image_upload_nonce'], 'my_image_upload' )
    && current_user_can( 'edit_post', $_POST['post_id'] )
) {
    // all OK! We continue.
    // These files must be connected to the front end (front end).
    require_once( ABSPATH . 'wp-admin/includes/image.php' );
    require_once( ABSPATH . 'wp-admin/includes/file.php' );
    require_once( ABSPATH . 'wp-admin/includes/media.php' );

    // Let WordPress catch the download.
    // Do not forget to specify the attribute name field input - 'my_image_upload'
    $attachment_id = media_handle_upload( 'my_image_upload', $_POST['post_id'] );

    if ( is_wp_error( $attachment_id ) ) {
        echo "Error loading media file.";
    } else {
        echo "The media file has been successfully uploaded!";
    }

} else {
    echo "Verification failed. Unable to load file.";
}
?>

答案 1 :(得分:0)

检查是否有可用空间。我遇到了同样的问题,我检查了每件事并做了更多工作,但问题出在我的文件存储上

enter image description here