【发布时间】:2016-01-09 21:59:00
【问题描述】:
我已经尝试了互联网上几乎所有可用的东西,但似乎没有任何效果。
我有一个 HTML5 文件阅读器代码,它将获取从客户端目录var f = $('#fileUpload')[0].files; 读取的所有文件接下来我想通过 AJAX 请求将所有这些文件上传到 JAVA servlet POST 方法。为此,我尝试了以下代码-
var data = new FormData();
$.each(f, function(key, value)
{
data.append(key, value);
});
postFilesData(data);
//some code..
function postFilesData(data)
{
$.ajax({
url: 'serv2',
type: 'POST',
//enctype: 'multipart/form-data',
data: data,
cache: false,
processData: false,
mimetyep: 'multipart/form-data',
contentType: 'multipart/form-data',
success: function(data)
{
//success
},
error: function(textStatus)
{
console.log('ERRORS: ' + textStatus);
}
});
}
servlet 代码 doPOst 方法-
System.out.println("Hi what request:"+ServletFileUpload.isMultipartContent(request));
System.out.println("hi bro");
// awsUpload.uploadData(foldername);
System.out.println("outside aws");
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
String uuidValue = "";
FileItem itemFile = null;
try {
// parses the request's content to extract file data
List formItems = upload.parseRequest(request);
Iterator iter = formItems.iterator();
// iterates over form's fields to get UUID Value
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
}
// processes only fields that are not form fields
if (!item.isFormField()) {
itemFile = item;
}
}
}
catch (Exception e) {
// TODO: handle exception
}
//System.out.println(path);
// response.sendRedirect(path+"/user"+"/home.html");
// System.out.println("done");
if(itemFile==null)
{
System.out.println("File Empty Found");
}
System.out.println("The File Name is"+itemFile.getName());
}
HTML 代码:
<form method="POST" enctype="multipart/form-data" >
<input type="file" class="input-file" name="file[]" id="fileUpload"
onchange="fileChanged();" multiple mozdirectory=""
webkitdirectory="" directory=""/> <br/>
它打印“找到空文件”并在下一行崩溃并出现 NullPointerException。我知道它没有得到任何数据。您能否指出一段错误的代码或需要添加的代码缺失。
【问题讨论】:
-
还有很多可以调试和确定的,但你没有告诉任何关于它的字/细节。首先解决这个问题,然后将问题简化为那个。例如,它是多部分内容吗?是否进入了while循环?真的没有例外吗? (您的代码有一个空的 catch 块,它会忽略任何异常并继续执行代码,就好像没有发生任何异常情况一样)。
标签: javascript java jquery ajax servlets