我正在处理文件上传,我想要一个插件,让用户只需单击一下即可轻松更新他们的个人资料图片或头像。有人推荐了blueimp的jQueryFileUpload。我设置了它的视图部分(单击该链接时会打开文件选择器对话框),但是我在接收文件数据时遇到问题。Fiddler 显示正在发布到我想要的 url 的文件数据,但我似乎找不到我所选文件数据的存储位置。用
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:
}
}
您应该按照有关如何构建后端的 https://github.com/blueimp/jQuery-File-Upload/wiki/Setup 文档进行操作。插件存档包含一个基本的 PHP 示例,您可以将其用作起点。