zoukankan      html  css  js  c++  java
  • SpringMVC中文件的上传(上传到服务器)和下载问题(一)--------上传

    一、今天我们所说的是基于SpringMVC的关于文件的上传和下载的问题的解决。(这里所说的上传和下载都是上传到服务器与从服务器上下载文件)。这里的文件包括我们常用的各种文件。如:文本文件(.txt),word文件(.doc),图片文件(.png    .jpg等),歌曲文件(.mp3等)以及视频文件(.mp4等)等各种类型的文件。

          下面让我们一步一步的来实现它。

    二、首先我们需要导入一些jar包。如图所示:

           即在WEB-INF下的lib文件夹下导入圈起的三个jar包。

    三、我们来建立一个简单名字为upload的jsp页面,并加入一个表单。如下所示:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data">
    	文件:<input type="file" name="file"/><br>
    	名字:<input type="text" name="name"/><br>
    	<input type="submit" value="上传"/>
    </form>
    </body>
    </html>
    

          这里有一个需要我们注意的问题,就是form表单的enctype属性一定要改成multipart/form-data。否则的话,我们无法进行文件的上传。

    四、我们需要在控制层写一个方法

    @RequestMapping(value="/upload",method=RequestMethod.POST)
    	public String testUpload(HttpServletRequest request,@RequestParam(value="name",required=false) String desc,@RequestParam(value="file") CommonsMultipartFile file) throws Exception{
    		System.out.println(desc);
    		ServletContext servletContext = request.getServletContext();
    		String realPath = servletContext.getRealPath("/upload");
    		File file1 = new File(realPath);
    		if(!file1.exists()){
    			file1.mkdir();
    		}
    		OutputStream out;
    		InputStream in;
    		String prefix = UUID.randomUUID().toString();
    		prefix = prefix.replace("-","");
    		String fileName = prefix+"_"+file.getOriginalFilename();
    		System.out.println(fileName);
    		out = new FileOutputStream(new File(realPath+"\"+fileName));
    		in = file.getInputStream();
    		IOUtils.copy(in, out);
    		out.close();
    		in.close();
    		return "/WEB-INF/success.jsp";
    	}
    

      这里面最       后返回的是WEB-INF下面的一个jsp页面。

    五、在SpringMVC的配置文件里加入以下的配置:

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <property name="maxUploadSize" value="5000000"></property>
    </bean>
    

      第一个<property></property>是设置编码;第二个<property ></property>是设置上传文件的大小,这里我们指定的大小是5000000个字节。

    六、建立一个名字为success的jsp页面。(随便写点东西就行)

    七、我们从upload页面开始运行,然后选择文件,就会将你的文件上传到你本机的服务器上。如图所示:

          我们在相应的文件夹下就能够找到你所上传的文件。

  • 相关阅读:
    vsftp 上传550 Permission denied解决办法
    FileZilla 客户端连接vsftp无法访问 Received unexpected end-of-file from SFTP server 解决之路
    vsftp的安装和使用
    linux 部署jar
    java TimeUnit 的使用
    RabbitMQ 简使用案例
    Nginx一个server配置多个location
    vue 打包部署到服务器上 配置nginx访问
    踩坑之SpringBoot WebSocker 部署Tomcat冲突
    webpack4怎么使用loader对样式资源打包
  • 原文地址:https://www.cnblogs.com/of-fanruice/p/7424865.html
Copyright © 2011-2022 走看看