MultipartFile returns null every time

旧巷老猫 提交于 2019-12-03 21:27:59

When you use multipart then your form fields are included in request Stream. So you have to check whether they are form fields or not.

This is what I use in a servlet, you can make appropriate changes in it to work in Spring-MVC.

boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (isMultipart)
        {
            try 
            {
                List items = upload.parseRequest(request);
                Iterator iterator = items.iterator();
                while (iterator.hasNext()) 
                {
                    FileItem item = (FileItem) iterator.next();

                    if (item.isFormField()) //your code for getting form fields
                    {
                        String name = item.getFieldName();
                        String value = item.getString();
                        System.out.println(name+value);
                    }

                    if (!item.isFormField()) 
                    {
                       //your code for getting multipart 
                    }
                }
            }

firstly please post more code then we can find more, secondly I think the problem is your form. If you use Spring mvc upload file, your form should be like this: <form action="your url" method="post" enctype="multipart/form-data"> pay attention to enctype, it lets the Spring DispatchServlet know that you want to upload a file. and also you should check did you config MutilPartFileResovler in the config file.

For those who are still struggling with this problem, here's what worked for me. Previously my input field was defined as,

<input type="file" />

I was getting null file with the above line but when I added the name="file" everything worked fine!

<input type="file" name="file" />

Hope this helps!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!