0

ajaxファイルアップローダーを機能させ、追加のフォームデータをphpに渡そうとしています。phpスクリプトは$_FILES['fileToUpload']を取得できますが、$ _POST["fname"]の未定義のインデックスを取得しています。

PHP

if(isset($_FILES['fileToUpload'])){

$fname = $_POST["fname"];

$name = htmlentities($_FILES['fileToUpload']['name']);
}

JAVASCRIPT

var fd = new FormData();
fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "uploader.php");
xhr.send(fd);

HTML

<form id="form1" name="form1" enctype="multipart/form-data">
                <div id="user">
                    <input type="text" id="fname" name="fname" />
                </div>
                <div id="fileInfo">
                    <div id="fileName"></div>
                    <div id="fileSize"></div>
                    <div id="fileType"></div>
                </div>
                <div class="row"></div>
                <div class="row">
                    <input type="file" name="fileToUpload" id="fileToUpload" onchange="fileSelected();"/>
                </div>
                <div class="row">
                    <input type="button" onclick="uploadFile()" value="Upload" />

4

1 に答える 1

1

あなたは投稿を送信するためにajaxを使用しているので、次のようなことをする必要があります

fd.append("fname", document.getElementById('fname').value);

それ以外の場合、「onclick」に fname 入力フィールドを送信するように指示するものは何もありません。

入力フィールドは、送信ボタンを使用した場合にのみ送信されます。

于 2012-08-08T03:00:33.147 に答える