2013-04-29 74 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,它可以跨浏览器处理此任务,并提供您可能会觉得有用的其他功能,如分块,自动恢复,粘贴上传,拖放支持等。还提供了服务器端示例。充分披露:我保持优良的上传。