は私のコードです:アップロードする.txtファイルフォームを作成するにはどうすればよいですか?ここ
HTML:
<form id="form_id" action="#" accept-charset="UTF-8" enctype="multipart/form-data">
<div>
<label for="files" class="drop-files-container">drag here</label>
<input id="files" type="file" name="file[]" style="visibility:hidden;">
</div>
</form>
はJavaScript:
$('#files').on('change',function() {
var files = $(this)[0].files;
processFileUpload(files);
return false;
});
function processFileUpload(droppedFiles) {
var uploadFormData = new FormData($("#form_id")[0]);
if(droppedFiles.length > 0) {
for(var f = 0; f < droppedFiles.length; f++) {
uploadFormData.append("file",droppedFiles[f]);
}
}
$.ajax({
url : "compareList.php",
type : "POST",
data : uploadFormData,
contentType: "application/x-www-form-urlencoded;charset=utf-8",
cache : false,
contentType : false,
processData : false,
dataType : "json",
success : function(data) {
console.log(data);
}
});
}
PHP:
$arr = array();
$file = $_FILES['file'];
$handle = fopen($file, "r");
header('HTTP/1.1 500 Internal Server Booboo');
header('Content-Type: application/json; charset=UTF-8');
die(json_encode(array('message' => 'ERROR', 'code' => 1337)));
そして、私のコードは、この返します。
警告:のfopen()は、パラメータ1がCに与えられた有効なパス、配列であることを期待:\ xamppの\ htdocsに\ comparelist_php \ compareList.phpラインに6
{ "メッセージ": "ERROR"、 "コード":1337}
どのように私はそれを修正することができますか?
は、HTMLマークアップではない私たちに配列表記を行います: '名前は=' "[]ファイル"。これは、サーバー側の$ _FILESスーパーグローバル変数の中に配列を作成します。これはあなたが望むものではありません。 – arkascha
また、 ''であっても '$ _FILES ['file']'はまだ配列になりますので、 '$ _FILES ['file'] ['tmp_name' ] '。 – roberto06
@arkascha OPは最初のものだけを選択するので問題はありません。 ( '$(this)[0] .files') –