用GWT保存上传的文件 [英] save an uploaded file with GWT

查看:81
本文介绍了用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()){
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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆