2017-06-22 79 views
1

我正在开发自定义WordPress插件。在这个插件中,我试图将文件上传到wp-content \ uploads \ passports(文件夹路径)中。
上传文件时,我不会遇到任何错误消息。虽然它显示文件已成功上传。消息,但文件夹中没有任何上载的文件。
这里是我的代码:无法通过自定义WordPress插件上传文件

跳闸form.php的

<tr><td cospan="4">Please attach a scanned copy of your:</td></tr> 
<tr> 
    <td>Passport:&nbsp;</td> 
    <td colspan="3"><input type="file" name="passport" id="passport"/></td> 
</tr> 
<tr> 
    <td></td> 
    <td colspan="3"><div id="dropBox"> 
     <p>Select file to upload</p> 
    </div></td> 
</tr> 

的script.js

// Add events 
$j('input[type=file]').on('change', fileUpload); 

// File uploader function 
function fileUpload(event){ 
    alert('fileUpload'); 
    //notify user about the file upload status 
    $j("#dropBox").html(event.target.value+" uploading..."); 

    //get selected file 
    files = event.target.files; 

    //form data check the above bullet for what it is 
    var data = new FormData();   

    var web_url = document.location + ''; 
    var path = web_url.substring(0,web_url.lastIndexOf('/')); 

    path = path.substring(0,path.lastIndexOf('/')); 
    path = path + '/wp-content/plugins/trip-form/pages/uploadfile.php';  

    //file data is presented as an array 
    for (var i = 0; i < files.length; i++) { 
     var file = files[i]; 

     var fileExtension = ['jpeg', 'jpg', 'pdf']; 
     if ($j.inArray($j('#passport').val().split('.').pop().toLowerCase(), fileExtension) == -1) { 
      $j("#dropBox").html("Only formats are allowed : "+fileExtension.join(', ')); 
     }else{ 
      //append the uploadable file to FormData object 
      data.append('file', file, file.name); 

      //create a new XMLHttpRequest 
      var xhr = new XMLHttpRequest();  

      //post file data for upload 
      xhr.open('POST', path, true); 
      xhr.send(data); 
      xhr.onload = function() { 
       //get response and show the uploading status 
       var response = JSON.parse(xhr.responseText); 
       if(xhr.status === 200 && response.status == 'ok'){ 
        $j("#dropBox").html("File has been uploaded successfully."); 
       }else{ 
        $j("#dropBox").html("Some problem occured, please try again."); 
       } 
      }; 
     } 
    } 
} 

uploadfile.php

<?php 
    $parse_uri = explode('wp-content', $_SERVER['SCRIPT_FILENAME']); 
    require_once($parse_uri[0] . 'wp-load.php'); 


    //generate unique file name 
    $fileName = time().'_'.basename($_FILES["file"]["name"]); 

    //file upload path, targetdir is correct 
    $targetDir = "../../../uploads/passports/"; 
    $targetFilePath = $targetDir . $fileName; 

    //upload file to server 
    if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){ 
    //if (file_exists ($targetDir."testing.txt")){ 
     $response['status'] = 'ok'; 
    }else{ 
     $response['status'] = 'err'; 
    } 

    //render response data in JSON format 
    echo json_encode($response); 
?> 

我不知道什么是错的。任何帮助,将不胜感激。
谢谢。

回答

0

你能否改变你的上传文件夹的权限。让它成为755.