1

私はいくつかの写真と一緒にデータベースに製品を追加しようとしています。サーバー側はPHPです。AJAXを介してすべてを非同期にアップロードしたい。製品ID()の後のディレクトリ名に写真を保存したいthumbs/productID

最初の部分は、製品情報を送信し、そのIDを取得することです。ただし、ファイルをアップロードするときに、ファイルと文字列の両方をアップロードして、保存するフォルダーをスクリプトに通知することはできません。ただし、送信できるのはファイルのみです。

ファイルとテキストの両方を同時に送信する方法はありますか?どんな助けでもいただければ幸いです。

$('#register-product').on('submit', function ( evt ) {
    evt.preventDefault();
    var i = 0, len = document.getElementsByName("images").length-1, reader, file;
    var myFiles = document.getElementsByName("images");
    // Adds all files to formdata
    for ( ; i < len; i++ ) {
        file = myFiles[i].files[0];
        if (!!file.type.match(/image.*/)) {
            if ( window.FileReader ) {
                reader = new FileReader();
                reader.readAsDataURL(file);
            }
            if (formdata) {
                formdata.append("images[]", file);
            }
        }   
    }
    // Send data to the server.
    if (formdata) {
        $.ajax({ 
            url: "upload.php",
            type: "POST",
            // data: formdata, // This is correct
            data: {formdata, id: 1}, // This doesn't work
            processData: false, 
            contentType: false,
            success: function (res) {
                console.log(res);
            }
        });
    }
});
4

2 に答える 2

1

フォームデータに別の値を追加するだけです。

//...
formdata.append("id", 1);
if (formdata) { //...

$_POST["id"]を介してアクセスできます。

于 2012-08-09T11:04:45.587 に答える
1

AJAX ポスト リクエストでファイルを送信することはできません。

ファイルのヘッダー データは送信されません。

そのため、iframe のトリックを実行するか、ファイル API を使用する必要があります。

于 2012-08-09T11:55:47.010 に答える