我提出了如下ajax请求
**function uploadFiles(url, files) {
alert("sss");
var formData = new FormData();
for (var i = 0, file; file = files[i]; ++i) {
alert("v"+file.name);
formData.append("file", file);
}
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.onload = function(e) {alert("'ddd111000") };
xhr.send(formData); // multipart/form-data
}**它将文件发送到服务器,但当我尝试读取请求和其中文件时,它使用的是Strut1.1中的apache文件上传。它返回FileItem对象空列表。以下是我写的服务器端代码,请帮助我
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(5000 * 1024);
// Location to save data that is larger than maxMemSize.
factory.setRepository(new File("G:\\Project\\"));
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// maximum file size to be uploaded.
upload.setSizeMax( 5000 * 1024 );
// Set factory constraints
// Create a new file upload handler
//ServletFileUpload upload = new ServletFileUpload(factory);
// ServletFileUpload upload = new ServletFileUpload();
// upload.getItemIterator(request);
List items = upload.parseRequest(request);项目列表为空。请给我代码或想法。
发布于 2012-02-05 22:01:09
你不能用普通的AJAX上传文件。许多JS库中都有变通方法,所以最好使用一些JS库,比如Jquery。
https://stackoverflow.com/questions/9149790
复制相似问题