【发布时间】:2015-05-07 11:20:45
【问题描述】:
我不明白为什么我没有收到文件,我在浏览器上有这个代码(拖放):
function dropZone(){
//drop zone
var dropZone = $('#dropZone'),
maxFileSize = 1000000000000000000000; // max size -
if (typeof(window.FileReader) == 'undefined') {
dropZone.text('Use recent browser to upload files');
dropZone.addClass('error');
}
//events
dropZone[0].ondragover = function() {
dropZone.addClass('hover');
return false;
};
dropZone[0].ondragleave = function() {
dropZone.removeClass('hover');
return false;
};
//class hack
dropZone[0].ondrop = function(event) {
event.preventDefault();
dropZone.removeClass('hover');
dropZone.addClass('drop');
//size
var file = event.dataTransfer.files[0];
if (file.size > maxFileSize) {
dropZone.text('Big file!');
dropZone.addClass('error');
return false;
}
//ajax
$.ajax({
type: 'post',
url: 'upload',
data: file,
success: function () {
alert('success!');
},
xhrFields: {
// add listener to XMLHTTPRequest object directly for progress
onprogress: uploadProgress
},
processData: false,
contentType: file.type
});
//progress
function uploadProgress(event) {
var percent = parseInt(event.loaded / event.total * 100);
dropZone.text('Donloading: ' + percent + '%');
}
//check result
function stateChange(event) {
if (event.target.readyState == 4) {
if (event.target.status == 200) {
dropZone.text('Downloaded successfuly!');
} else {
dropZone.text('Error!');
dropZone.addClass('error');
}
}
}
};
}
我无法接收文件,我使用中间件'connect-multiparty',但我不知道它是否仍然适用于这段代码,因为当我尝试获取文件列表时:
console.log(req.files);
我收到:
{}
我需要一些不同的东西来解析那个请求?
【问题讨论】:
标签: javascript ajax node.js post upload