【发布时间】:2011-04-23 19:34:22
【问题描述】:
我正在尝试创建一个上传 servlet,用于处理来自表单的 enctype="multipart/form-data"。我要上传的文件是 zip。但是,我可以在 localhost 上上传和读取文件,但是当我上传到服务器时,当我想上传文件时出现“找不到文件”错误。这是由于我使用的 Struts 框架造成的吗?谢谢你的帮助。这是我的代码的一部分,我正在使用来自 http://commons.apache.org/fileupload/using.html 的 FileUpload
我已更改为使用 ZipInputStream,但是,如何在不使用本地磁盘地址(即:C://zipfile.zip)的情况下引用 ZipFile zip。 zip 为空,因为它没有被实例化。我需要解压并读取内存中的 zipentry,而不是写入服务器。
对于上传 servlet: > 私人 ZipFile 压缩包; 私人 CSVReader 阅读器; boolean isMultipart = ServletFileUpload.isMultipartContent(request); 如果(是多部分){ DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List <FileItem> items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
//Iterating through the uploaded zip file and reading the content
FileItem item = (FileItem) iter.next();
ZipInputStream input = new ZipInputStream(item.getInputStream());
ZipEntry entry = null;
while (( entry= input.getNextEntry()) != null) {
ZipEntry entry = (ZipEntry) e.nextElement();
if(entry.getName().toString().equals("file.csv")){
//unzip(entry)
}
}
}
public static void unzip(ZipEntry entry){
try{
InputStream inputStream = **zip**.getInputStream(entry);
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
reader = new CSVReader(inputStreamReader);
}
catch(Exception e){
e.printStackTrace();
}
}
【问题讨论】:
标签: servlets file-upload struts2 zip