【发布时间】:2015-06-15 23:41:06
【问题描述】:
我在客户端有这段代码:
fileUpload: function monkey(){
var file = t.gI("photoFile"); //get element by photoFile
var formData = new FormData();
console.log(file.files.length);
formData.append("upload", file.files[0]);
var req = t.gR(); //XMLHTTPRequest
req.open('POST', 'php/fileupload.php', true);
req.setRequestHeader("Content-Type", "multipart/form-data", true);
req.send(formData);
req.onreadystatechange = function () {
if (req.readyState === 4) {
if (req.status == 200 && req.status < 300) {
t.gI("eventBox").innerHTML = req.responseText; //eventbox error handler
adminHandler.eventBox();
}
}
}
},
这在服务器端:
<?php
header('Content-Type:multipart/form-data');
echo $_FILES['upload']['tmp_name'];
?>
我收到了这个错误消息:
[15-Jun-2015 12:03:21 UTC] PHP 警告:multipart/form-data POST 数据在第 0 行的未知中缺少边界 [15-Jun-2015 12:03:21 UTC] PHP 注意:未定义索引:在 /home/webprogb/public_html/php/fileupload.php 第 4 行上传
我能做些什么来解决它?
【问题讨论】:
-
您不会从服务器输出 multipart/form-data。那是为客户端发送正常的非文件上传表单到服务器。你的服务器端脚本应该只是
<?php echo 'foo' ?>。如果您所做的只是转储文件名,则无需标题。并且未定义的索引意味着没有文件被上传。var_dump($_FILES)可能会显示它是空的。
标签: php ajax multipartform-data