用GWT保存上传的文件 [英] save an uploaded file with GWT
本文介绍了用GWT保存上传的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用 org.apache.commons.fileupload
上传。
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException {
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
GWT.log(is multipart?+ Boolean.toString(isMultipart),null);
ServletFileUpload upload = new ServletFileUpload();
尝试{
FileItemIterator iter = upload.getItemIterator(request); (iter.hasNext()){
FileItemStream item = iter.next();
while(iter.hasNext())
String name = item.getFieldName();
InputStream stream = item.openStream();
$ b / **
*保存上传的文件
* /
}
}
catch(Exception e){
e.printStackTrace();
如何保存上传的文件?
解决方案
我认为这可以帮助您。
if(!item.isFormField()){
$ p $请注意,上传的文件可能已经由org.apache.commons.fileupload自动保存。
String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
文件saveTo = new File(/ file_uploads /+ fileName);
尝试{
item.write(saveTo);
...
}
catch(Exception e){
...
}
您可以设置文件的大小阈值保存在磁盘上或使用
创建一个基于磁盘的文件项的工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//设置工厂约束
factory.setSizeThreshold(yourMaxMemorySize);
factory.setRepository(yourTempDirectory);
//创建一个新的文件上传处理程序
ServletFileUpload upload = new ServletFileUpload(factory);
//设置总体请求大小约束
upload.setSizeMax(yourMaxRequestSize);
//解析请求
List / * FileItem * / items = upload.parseRequest(request);
您需要了解org.apache.commons.fileupload的所有信息如下:使用FileUpload
I am using
org.apache.commons.fileupload
to upload.public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean isMultipart = ServletFileUpload.isMultipartContent(request); GWT.log("is multipart? " + Boolean.toString(isMultipart), null); ServletFileUpload upload = new ServletFileUpload(); try{ FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); InputStream stream = item.openStream() ; /** * Save th uploaded file */ } } catch(Exception e){ e.printStackTrace(); } }
How can I save the uploaded file?
解决方案I think this can help you.
if (!item.isFormField()) { String fieldName = item.getFieldName(); String fileName = item.getName(); String contentType = item.getContentType(); boolean isInMemory = item.isInMemory(); long sizeInBytes = item.getSize(); File saveTo = new File("/file_uploads/" + fileName); try { item.write(saveTo); ... } catch (Exception e){ ... }
Keep in mind that uploaded file may already be automatically saved by org.apache.commons.fileupload
You can set size threshold for file to be saved on disk or loaded in memory using
// Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Set factory constraints factory.setSizeThreshold(yourMaxMemorySize); factory.setRepository(yourTempDirectory); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Set overall request size constraint upload.setSizeMax(yourMaxRequestSize); // Parse the request List /* FileItem */ items = upload.parseRequest(request);
Everything you need to know about org.apache.commons.fileupload is here: Using FileUpload
这篇关于用GWT保存上传的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文