将文件上传到Java中没有临时文件的HTTP服务器内存中?

PbxMan

如何在不使用Java中的临时文件的情况下将文件直接上传到HTTP服务器内存?我目前在tomcat上使用Struts 2和apache ServletFileUpload,但我还没有找到实现此目的的方法。

PbxMan

在apache中,类FileUploadBase parseRequest(RequestContext ctx)...正在创建临时文件

public List<FileItem> parseRequest(RequestContext ctx)
  ...
  Streams.copy(item.openStream(), fileItem.getOutputStream(), true);

基于此处的文档我编写了以下servlet,以将其上传到字节数组而不创建临时文件。

import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
import org.apache.commons.io.IOUtils;
@WebServlet("/upload")
public class UploadByteArrayServlet extends HttpServlet {
    private static final long serialVersionUID = 1123445L;
    private static final int MAX_FILE_SIZE      = 1024 * 1024 * 1; // 1MB
    private static final int MAX_REQUEST_SIZE   = 1024 * 1024 * 1; // 1MB
    protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
        byte[] bytes =  "".getBytes();
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if(isMultipart){
            ServletFileUpload upload = new ServletFileUpload();
            upload.setFileSizeMax(MAX_FILE_SIZE);
            upload.setSizeMax(MAX_REQUEST_SIZE);
            try {
                // Parse the request
                FileItemIterator iter = upload.getItemIterator(request);
                while (iter.hasNext()) {
                    FileItemStream item = iter.next();
                    String name = item.getFieldName();
                    InputStream stream = item.openStream();
                    if (item.isFormField()) {
                        System.out.println("Form field " + name + " with value "
                            + Streams.asString(stream) + " detected.");
                    } else {
                        System.out.println("File field " + name + " with file name "
                            + item.getName() + " detected.");
                        //loads only the first file
                        if(bytes.length==0)
                            bytes = IOUtils.toByteArray(item.openStream());
                    }
                }
            } catch (FileUploadException e) {
                e.printStackTrace();
            }       
        } else {
            response.getWriter().print("is not a multipart request");
            response.setStatus(200);
        }
        response.getWriter().print("bytes uploaded in file" + bytes.length);
        //TODO store in session etc...
    }    
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Java在Domino服务器上写入临时文件:临时目录的最佳做法是什么?

来自分类Dev

使用rsync将文件复制到目录中时,Java Watch服务从OS而不是实际文件中获取临时文件通知

来自分类Dev

如何在ruby中创建没有临时文件的zip文件?

来自分类Dev

如何在Microsoft Azure虚拟服务器上创建和保存临时文件

来自分类Dev

将文件上传到服务器

来自分类Dev

没有使用PHP脚本将文件上传到服务器

来自分类Dev

使用php将多个文件上传到服务器,而不将所有文件上传到服务器

来自分类Dev

上传文件并将其保存在临时文件夹中

来自分类Dev

在PostgreSQL中删除临时文件

来自分类Dev

文件上传到服务器后触发操作(服务器路径中存在文件)

来自分类Dev

通过HTTP将文件上传到ASP.NET,再上传到C#中的FTP服务器

来自分类Dev

ruby临时目录中的临时文件

来自分类Dev

警告:文件上传错误-无法在第0行的“未知”中创建临时文件

来自分类Dev

服务器迁移后Wordpress临时文件夹写入错误

来自分类Dev

如何在ruby中创建没有临时文件的zip文件?

来自分类Dev

将文件上传到服务器

来自分类Dev

上传XML文件,放入临时文件夹或localStorage中并访问内容

来自分类Dev

使用php将多个文件上传到服务器,而不将所有文件上传到服务器

来自分类Dev

将文件上传到SailsJS中的远程服务器

来自分类Dev

将文件上传到服务器并使用Ruby中的NET :: SCP gem删除原始文件

来自分类Dev

删除wamp中的临时文件会加快我的本地主机服务器的速度吗?

来自分类Dev

将文件上传到Java中没有临时文件的HTTP服务器内存中?

来自分类Dev

使用ajax将文件上传到服务器上传目录。图片没有上传到上传目录;收到连接重置错误

来自分类Dev

如何从临时文件夹在 JSP 页面中呈现上传的 Excel 文件?

来自分类Dev

Lychee:文件上传错误 - 无法在第 0 行的 Unknown 中创建临时文件

来自分类Dev

Ubuntu远程服务器:自动清理临时文件

来自分类Dev

将图像从 Objective-c 上传到服务器时文件损坏

来自分类Dev

将文件从asp.net web 表单项目上传到IIS 服务器时,原始文件在临时文件夹中出错

来自分类Dev

文件没有上传到同一服务器中的另一个目录。?

Related 相关文章

  1. 1

    使用Java在Domino服务器上写入临时文件:临时目录的最佳做法是什么?

  2. 2

    使用rsync将文件复制到目录中时,Java Watch服务从OS而不是实际文件中获取临时文件通知

  3. 3

    如何在ruby中创建没有临时文件的zip文件?

  4. 4

    如何在Microsoft Azure虚拟服务器上创建和保存临时文件

  5. 5

    将文件上传到服务器

  6. 6

    没有使用PHP脚本将文件上传到服务器

  7. 7

    使用php将多个文件上传到服务器,而不将所有文件上传到服务器

  8. 8

    上传文件并将其保存在临时文件夹中

  9. 9

    在PostgreSQL中删除临时文件

  10. 10

    文件上传到服务器后触发操作(服务器路径中存在文件)

  11. 11

    通过HTTP将文件上传到ASP.NET,再上传到C#中的FTP服务器

  12. 12

    ruby临时目录中的临时文件

  13. 13

    警告:文件上传错误-无法在第0行的“未知”中创建临时文件

  14. 14

    服务器迁移后Wordpress临时文件夹写入错误

  15. 15

    如何在ruby中创建没有临时文件的zip文件?

  16. 16

    将文件上传到服务器

  17. 17

    上传XML文件,放入临时文件夹或localStorage中并访问内容

  18. 18

    使用php将多个文件上传到服务器,而不将所有文件上传到服务器

  19. 19

    将文件上传到SailsJS中的远程服务器

  20. 20

    将文件上传到服务器并使用Ruby中的NET :: SCP gem删除原始文件

  21. 21

    删除wamp中的临时文件会加快我的本地主机服务器的速度吗?

  22. 22

    将文件上传到Java中没有临时文件的HTTP服务器内存中?

  23. 23

    使用ajax将文件上传到服务器上传目录。图片没有上传到上传目录;收到连接重置错误

  24. 24

    如何从临时文件夹在 JSP 页面中呈现上传的 Excel 文件?

  25. 25

    Lychee:文件上传错误 - 无法在第 0 行的 Unknown 中创建临时文件

  26. 26

    Ubuntu远程服务器:自动清理临时文件

  27. 27

    将图像从 Objective-c 上传到服务器时文件损坏

  28. 28

    将文件从asp.net web 表单项目上传到IIS 服务器时,原始文件在临时文件夹中出错

  29. 29

    文件没有上传到同一服务器中的另一个目录。?

热门标签

归档