我已经研究过很多关于此事的帖子,但我仍然遇到麻烦,这就是为什么我决定发布一个问题的原因。
我有一个带文件输入的html表单:
<form id='AddFile' action='AddFile.php' method='post' enctype='multipart/form-data'>
<input type='file' id='fileAdd' name='fileAdd'>
Friendly Name: <input type='text' id='friendlyname-Add'>
</form>
我有一些JavaScript准备上传文件:
var form = $('AddFile')[0];
var formData = new FormData(form);
$.ajax({
url: "AddFile.php",
type: 'POST',
data: formData,
cache: false,
dataType: 'json',
contentType: false,
processData: false,
success: function(data){
alert("file uploaded!");
...
和处理数据的PHP:
<?php
$uploaddir = 'path';
$uploadfile = $uploaddir . basename($_FILES['fileAdd']['name']);
echo $uploadfile;
if (move_uploaded_file($_FILES['fileAdd']['tmp_name'], $uploadfile)) {
...
}else{
...
}
?>
答案 0 :(得分:0)
错字:
var form = $('AddFile')[0];
^---no #
没有#
或.
,jquery正在寻找一个显然不存在的<AddFile>
标记。
如果您对PHP代码进行了最小的错误处理,那么您已经看到没有执行任何上传。 $ _FILES中有一个['error']
参数,原因如下:
if($_FILES['fileAdd']['error'] !== UPLOAD_ERR_OK) {
die("Upload failed with error code " . $_FILES['fileAdd']['error']);
}