Uploading a file in Java using a servlet

2019-07-16 12:05发布

I'm using javazoom for uploading

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException {
    PrintWriter out = null;
    JOptionPane.showMessageDialog(null, "Lets do this");
    try {
        response.setContentType("text/html;charset=UTF-8");
        try {
            MultipartFormDataRequest dataRequest = new MultipartFormDataRequest(request);
            //get uploaded files
            Hashtable files = dataRequest.getFiles();
            if (!files.isEmpty()) {
                UploadFile uploadFile = (UploadFile) files.get("filename");
                byte[] bytes = uploadFile.getData();
                String s = new String(bytes);

the files are always coming as empty. Any help please?


I then tried doing this with Apache Commons FileUpload:

 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException {
     PrintWriter out = null;

        try {

            response.setContentType("text/html;charset=UTF-8");
            //MultipartFormDataRequest dataRequest = new MultipartFormDataRequest(request);
            //get uploaded files
            FileItemFactory factory = new DiskFileItemFactory();
            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            List files = null;
            try {
                files = upload.parseRequest(request);
            } catch (FileUploadException ex) {
                Logger.getLogger(ProcessUploadItem.class.getName()).log(Level.SEVERE, null, ex);
            }

and it failed at files = upload.parseRequest(request);

Any pointers?

Sorry and thank you :)

3条回答
Viruses.
2楼-- · 2019-07-16 12:54

Are you using another framework, like Trinidad or similar? They usually include filters that recover the uploaded files so when the process gets to your server, the request doesn't contain any attached file.

查看更多
闹够了就滚
3楼-- · 2019-07-16 13:01

I'd recommend using a more popular, high-profile library to do this, such as Apache Commons FileUpload. It's more likely to work, have better docs and have more people around to help you use it.

查看更多
干净又极端
4楼-- · 2019-07-16 13:05

Check the form sending the file has enctype="multipart/form-data" defined like here:

<form enctype="multipart/form-data" action="...

Other way the file will never upload according to RFC1867

查看更多
登录 后发表回答