0

デスクトップからリモート サーバーに単純なファイルをアップロードするのに苦労しています。私はファイルを取得するためのphpで簡単なフォームを持っています:

<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.php24行目。

24行目は

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

私は使用しようとし$file = $_FILES["file"]["name"]ましたが、それでも同じエラーが発生します。サーバーにアップロードしたいファイルがデスクトップにあります。これを機能させるにはどうすればよいですか??

4

2 に答える 2

2

これは、ファイル API をサポートする任意のブラウザー (ほとんどの場合、IE9 以前を除くすべて) で XHR2 を使用して可能です。お使いのブラウザが File API をサポートしていない場合は、iframe 内でフォームを送信する必要があります。

これらのタスクなどを処理する事前構築済みのソリューションがあります。このタスクのクロスブラウザを処理し、チャンク、自動再開、アップロードへの貼り付け、ドラッグアンドドロップのサポートなど、便利な追加機能を提供するFine Uploaderをチェックすることをお勧めします。サーバー側の例も提供されています. 完全な開示: 私は Fine Uploader を維持しています。

于 2013-04-29T14:46:12.163 に答える
-3

ajaxによるファイルのアップロードはできません。ページを更新したくない場合は、iframe を介してこれを行うことができます。 http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html

于 2013-04-29T14:23:51.257 に答える