2013-04-29 75 views
0

我很難從我的桌面上傳一個簡單的文件上傳到我的遠程服務器。我在PHP中的簡單的形式來獲取文件:使用php,JS&ajax通過ftp上傳文件

<form enctype="multipart/form-data"> 
    <tr> 
     <td><label>select the file to reconcile the checks</label></td> 
     <td><input type="file" id="file" name="file" /></td> 
     <td><input type="button" id="checks" value="Check Reconciliation" /></td>  
    </tr> 
</form> 

然後傳遞給我的JavaScript有:

$("#checks").live('click', function() { 
    $.ajax({ 
     type: "POST", 
     url: "checkReconciliation3.php", 
     dataType: "json", 
     data: ({file: $('#file').val()}), 
     success: function(data){ 
      $('#message').html(data.message); 
     } 
    }); 
}); //end of checks click function 

checkReconciliation3.php是:

header('Content-type: text/html; charset=utf-8'); 
require_once ('../db.php'); 
require_once('ftp.php'); 
$file = $_POST['file']; 

// set up basic connection 
$conn_id = ftp_connect($ftp_server); 

// login with username and password 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
ftp_pasv($conn_id, true); 

//ftp_chdir($conn_id, '/home/bookcell/bookcellaronline.com/html/testbcos/accounting/'); 
ftp_put($conn_id, $remote_file, $file, FTP_BINARY); 

echo $php_errormsg; 
ftp_close($conn_id); // close the connection 

從我的一切研究SO,這看起來是正確的,但我不斷收到以下錯誤:

PHP Warning: ftp_put(checkslastmonth.csv) [<a href='function.ftp-put'>function.ftp-put</a>]: failed to open stream: No such file or directory in /chroot/home/bookcell/bookcellaronline.com/html/testbcos/accounting/checkReconciliation3.php上線24

24號線是

ftp_put($conn_id, $remote_file, $file, FTP_BINARY); 

我已經使用$file = $_FILES["file"]["name"]試過,我仍然得到同樣的錯誤。我想要上傳到我的服務器的文件位於我的桌面上。我如何得到這個工作?

回答

-3

文件上傳不可能通過ajax。 如果你不想刷新頁面,你可以通過iframe來做到這一點。 http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html

+0

感謝您的幫助,這很好。 – Jim 2013-04-29 16:02:51

+0

你當然可以通過ajax上傳文件。任何支持File API的瀏覽器都可以通過XHR級別2上傳文件。 – 2013-06-05 15:25:58

+0

@Yordi這是不正確的,你可以用ajax上傳文件。幾乎所有的HTML5瀏覽器都可以做到這一點。 – botenvouwer 2014-03-04 08:39:19

1

在任何支持File API的瀏覽器(除了IE9和更老版本以外)中,這都可以使用XHR2。如果您的瀏覽器不支持File API,則需要求助於在iframe中提交表單。

有預先爲您構建的解決方案可以處理這些任務,等等。我建議您查看一個,Fine Uploader,它可以跨瀏覽器處理此任務,並提供您可能會覺得有用的其他功能,如分塊,自動恢復,粘貼上傳,拖放支持等。還提供了服務器端示例。充分披露:我保持優良的上傳。