1
我正在进行文件上传,我想要一个插件,可以让用户轻松更新他们的个人资料图片或头像,只需点击一下。有人推荐blueimp jQueryFileUpload。我有它的设置的一部分(一个链接,点击后,打开一个文件选择器对话框),但我在接收文件数据时遇到问题。提琴手显示文件数据发布到我想要的网址,但我似乎无法找到我选择的文件的数据存储在哪里。使用jQueryFileUpload发送的文件数据在哪里?
print_r($_POST);
只显示一个参数。
我的javascript如下:
$(".hoverAction").on('click', function(e) {
$(".fileInput:first").fileupload({
url: "/user/update",
singleFileUploads: true,
formData: {
type: "avatar"
},
add: function(e, data) {
var goUpload = true;
var uploadFile = data.files[0];
if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test(uploadFile.name)) {
common.notifyError('You must select an image file only');
goUpload = false;
}
if (uploadFile.size > 2000000) { // 2mb
common.notifyError('Please upload a smaller image, max size is 2 MB');
goUpload = false;
}
if (goUpload == true) {
data.submit();
}
}
});
$(".fileInput:first").click();
我的POST处理程序如下:
function updateAction() {
$type = $_POST['type'];
switch($type) {
case "avatar":
print_r($_POST); // returns only the type param
break;
case "cover":
break;
default:
}
}
文件上传位于'$ _FILES'中,而不是'$ _POST'。 – Barmar
@Barmar这是朝着正确方向迈出的一步,但在Fiddler中,我可以看到实际的文件数据。存储在哪里? – Laplace
它存储在服务器上的临时文件中,'$ _FILES'包含临时文件的名称。就像如果你做了一个普通的上传表单而不是AJAX。 – Barmar