美文网首页
文件上传

文件上传

作者: dillqq | 来源:发表于2019-11-19 19:58 被阅读0次

加入依赖

 <dependencies>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.2.0.RELEASE</version>
</dependency>


<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.15</version>
</dependency>


<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>5.2.0.RELEASE</version>
</dependency>


<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version>
  <scope>provided</scope>
</dependency>



<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.2</version>
  <scope>provided</scope>
</dependency>


<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.2.0.RELEASE</version>
</dependency>


<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>


<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.1</version>
</dependency>


<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
  <groupId>commons-io</groupId>
  <artifactId>commons-io</artifactId>
  <version>2.4</version>
</dependency>



  </dependencies>

提交表单

<form action="user/fileUpload" method="post" enctype="multipart/form-data">

    文件提交:<input type="file" name="Upload"/>
    <input type="submit" value="提交">
</form>

代码

@RequestMapping(path = "/fileUpload", method = {RequestMethod.POST}, headers = {"Accept"})
public String fileUpload()
{
    System.out.println("文件上传");
    return "success";
}

传统的文件上传

    @RequestMapping(path = "/fileUpload", method = {RequestMethod.POST}, headers = {"Accept"})
public String fileUpload(HttpServletRequest request) throws Exception {
    System.out.println("文件上传");
    String realPath = request.getSession().getServletContext().getRealPath("/uploads/");
    File file = new File(realPath);
    if (!file.exists())
    {
        file.mkdirs();
    }
  //        解析request对象,获取上传文件
    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload   = new ServletFileUpload(factory);
    List<FileItem> filename = upload.parseRequest(request);
    for (FileItem item : filename)
    {
        if (item.isFormField())
        {

        }else {
            String fileName = item.getName();
  //                生成唯一id

            String replace = UUID.randomUUID().toString().replace("-", "");
            fileName = replace +"_"+ fileName;
            item.write(new File(realPath, fileName));
            item.delete();
        }
    }

    return "success";
}


}

Spring文件上传

使用文件解析器确定上传文件对象,再将上传的文件项MultipartFile(注意:上传的input的name值必须和参数MultipartFile的名一样)传入上传文件对象中

配置文件解析器

<!--    配置文件解析器对象-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="maxUploadSize" value= "10485760"/>
    </bean>

代码

 @RequestMapping(path = "/fileUpload2", method = {RequestMethod.POST}, headers = {"Accept"})
public String fileUpload2(HttpServletRequest request, MultipartFile Upload) throws Exception {
    System.out.println("文件上传");
    String realPath = request.getSession().getServletContext().getRealPath("/uploads/");
    File file = new File(realPath);
    if (!file.exists())
    {
        file.mkdirs();
    }
    String fileName = Upload.getOriginalFilename();
  //                生成唯一id
    String replace = UUID.randomUUID().toString().replace("-", "");
    fileName = replace +"_"+ fileName;
    Upload.transferTo(new File(realPath, fileName));

    return "success";
}

跨服务器上传文件

 @RequestMapping(path = "/fileUpload3", method = {RequestMethod.POST}, headers = {"Accept"})
public String fileUpload3(MultipartFile Upload) throws Exception {

    String realPath = "http://localhost:8081/fileiamge_war_exploded/upload/";
    System.out.println(realPath);
    String fileName = Upload.getOriginalFilename();
//                生成唯一id
    String replace = UUID.randomUUID().toString().replace("-", "");
    fileName = replace +"-"+ fileName;
    System.out.println(realPath + fileName);
    
    //创建客户端对象
    Client client = Client.create();
    //和图片服务器进行连接
    WebResource resource = client.resource("http://localhost:8081/upload/" + fileName);
    //上传文件
    resource.put(Upload.getBytes());
    return "success";
}

相关文章

网友评论

      本文标题:文件上传

      本文链接:https://www.haomeiwen.com/subject/wraiictx.html