我已经使用fileUpload一次之前上传文件到我们的服务器,但现在我必须做一些不同的事情。正在上传的文件永远不会写入磁盘,而应逐行读入并插入到数据库中 - 每行代表优惠券/折扣 - 这是一个内部内容管理系统,因此文件永远不会大于10行左右,最大100行apache commons-fileupload是否总是要写入磁盘?
我试着用我的工作代码来使用BufferedReader并在读入时对其进行处理,但我不断收到NullPointerException(尽管stacktrace丢失了,所以我必须使用log4j来获取正确的输出)。有没有人在网上看过一个例子,或者知道我做错了什么?
我的代码片段:
BufferedInputStream in = null;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);
String enc = request.getCharacterEncoding();
for (FileItem item : items) {
if (item.isFormField()) {
if ("code".equalsIgnoreCase(fileItem.getFieldName()))
this.code = fileItem.getString(enc);
... // set these to local variables
} else {
in = new BufferedInputStream(new FileInputStream(item.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
insert2DB(line);
}
}
}
我需要做任何事情或做我必须把它写入到磁盘,然后第一次读它?
你忘了告诉'null'究竟是什么。 – BalusC 2013-03-26 01:07:28
明天我可以做到这一点......我试图早点跳过工作...... – 2013-03-26 03:12:17