2015-07-21 113 views
0

嗨,我很難用move_uploaded_file函數將文件傳遞到新的位置。我正在使用ajax將函數傳遞給我的process.php。 希望你能幫助我。如何上傳文件在服務器上使用move_uploaded_file

這裏是我的process.php

$target_dir = "../files-here/"; 
 
    $filename = $_POST['filename']; 
 
    $path_url = $target_dir .$filename; 
 

 
    if (file_exists($path_url)) { 
 
      echo "Sorry, file already exists."; 
 
      $uploadOk = 0; 
 
     } 
 
     else 
 
     { 
 
      if(move_uploaded_file($filename, $path_url)) 
 
      echo "The file".$filename."has been uploaded";

這是我與阿賈克斯的形式。

echo "<form method='post' enctype='multipart/form-data' id='test_ajax'>"; 
 

 
    echo "<input name='uploadedfile' type='file' id='custom-file-input' class='test-only' /><br/>"; 
 
    echo "</form>"; 
 
    echo '<button value="Upload" id="custom-submit-input">Upload</button>'; 
 

 

 
    <script> 
 
jQuery('#custom-submit-input').click(function(){ 
 
      
 
var filename = jQuery('input[type=file]').val().replace(/.*(\/|\\)/, ''); 
 

 
      jQuery.post("file-here/process.php", {     
 
       filename: filename 
 

 
      }, function(data) { 
 
       console.log(data); 
 
       
 
      }); 
 
    </script>

+0

你只是發送文件名。您應該發送表單數據以上傳文件。看看這個http://stackoverflow.com/questions/2320069/jquery-ajax-file-upload –

回答

0

我不知道,當你想到這會工作。您的表單永遠不會「提交」,因此您的文件不會上傳,而且您也無法處理上傳的文件。你可能會設法發佈一個文件的文件名,但多數民衆贊成在所有。

您需要:

  1. 提交您的形式(使用HTML)
  2. 處理您上傳的文件(使用PHP)的常用方法
  3. 將您上傳的文件(使用PHP)

上傳的文件將存在臨時目錄中,臨時文件名一旦上傳,您將需要從$ _FILES數組中獲取該數據。您可以使用move_uploaded_file將臨時文件移至其最終目的地。

我不確定你可以'ajax'這個過程的大部分。

相關問題