当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring mvc3上传文件?[重复]

仲孙经赋
2023-03-14

我想使用SpringMVC3上传文件并进行处理

@RequestMapping(value = "uploadAction.do")
public ModelAndView upload(
@RequestParam("file") CommonsMultiPartFile file
)
{

System.out.println(file);
ModelAndView view = new ModelAndView();
return view;
}

但是它不起作用,我把< code>@RequestParam和< code>@ModelAttribute搞混了,所以请帮助我

共有2个答案

颜志业
2023-03-14

大概是这样的:

@RequestMapping(value="/upload", method=RequestMethod.POST)
    public String upload( @RequestParam("upload") 
                          MultipartFile multipartFile
                          ...                         
){          
    ....
}

格式为enctype:

<form id="command" name="command" method="POST" action="/upload" enctype="multipart/form-data">
     ....
      <input id="upload" type="file" name="photo">
     ....
</form>
安浩瀚
2023-03-14

上传功能取决于几个因素。根据文档,以下是您必须确保的事项

发出POST请求。文件上传应该是POST请求

@RequestMapping(value = "uploadAction.do", method=RequestMethod.POST)

通过将多部分解析器添加到Web应用程序的上下文来启用Spring多部分处理

     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <!-- one of the properties available; the maximum file size in bytes -->
         <property name="maxUploadSize" value="100000"/>
    </bean>

确保共享资源文件上传.jar位于您的类路径上,如果您使用的是 maven,则以下内容应该涵盖您

    <!-- File Upload -->
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2.2</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.0.1</version>
    </dependency>

有了所有这些,你的映射应该工作得很好,前提是你的表单是好的,这里有一个例子

    <form id="fileuploadForm" action="/uploadAction.do" method="POST" enctype="multipart/form-data" class="cleanform">
        <input id="file" type="file" name="file" />
        <p><button type="submit">Upload</button></p>        
    </form>

另请注意,最好通过更改参数类型来对接口进行编程

public ModelAndView upload(@RequestParam("file") MultipartFile file) {

您将委托将实现注入到框架中。好处是您可以使用Spring mvc测试框架编写文件上传测试,在这种情况下,框架将为MultipartFile接口插入模拟实现

 类似资料:
  • 我正在尝试使用多部分实体方法上传文件。但它失败,错误说{“错误”:“文件参数值'无'无效”} 我的代码是: File File = new File(" C:/Users/SST-06/Desktop/new . txt "); 我的实体文件包含所有提到的参数。 -hkYO-pblk 0 uqlxjtvklrbkosxz 7 mye-8 wbvbvanx Content-Disposition:f

  • 我可以使用将文件上载为 上面的代码运行良好。 现在,我想对同一作业使用。我试着在网上搜索并实现代码。但我无法得到结果。 html代码如下所示: 代码中没有任何形式。如何解决问题?

  • 我写了一个可以上传文件到服务器的服务,现在我正在放心地编写它的集成测试。功能代码如下: 如果我添加标题信息“content-type=multipart/form-data”,我将得到这样的消息:“400-Request不是一个多部分请求,有关更多信息,请参见详细信息”。这部分也让我感到困惑,因为在上面的图像中,您可以看到我正在发送一个“表单数据”文件,这怎么可能不是一个多部分请求呢? 不管怎样,

  • 我需要使用Angular2上传文件,我在客户端使用它,在服务器端使用WebAPI。如何使用此组合来实现

  • 问题内容: 我知道,关于这个主题的话题并非没有,但请耐心等待。我想使用Ajax或等效文件将文件上传到服务器。 我猜我配置ajax函数的方式存在问题,因为在调试模式下,除之外的所有数据均会返回。 我做错了什么吗? 问题答案: 回顾过去,较旧的答案不切实际,不建议使用。暂停整个Javascript以仅上传文件, 您可能会在上传过程中触发其他功能 。 如果您仅将JQuery用于,则我建议使用: Axio

  • 这是我的密码 超文本标记语言形式只是基本的超文本标记语言(enctype包括和方法后),但不幸的是没有传递数据。如何上传文件并传递输入数据一次?