zoukankan      html  css  js  c++  java
  • Spring框架——文件上传(SpringMVC)

    文件上传

    表单页面

    • method属性必须为post

    • 必须要enctype="multipart/form-data"属性

    	<form action="upload1" method="post" enctype="multipart/form-data">
    		<input type="text" name="title" /><br>
    		<input type="file" name="upfile" /><br>
    		<input type="submit" value="submit" />
    	</form>
    

    Servlet3.0上传

    在web.xml中

    <servlet></servlet>中添加

    <multipart-config></multipart-config>

    在(servletname)-servlet.xml中

    	<bean id="multipartResolver"
    		class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
    	</bean> 
    

    在Java文件中

    	@RequestMapping("upload1")
    	public void upload1(@RequestParam(value="title") String title,
                @RequestParam(value="upfile") MultipartFile file,
                HttpServletRequest request){
    		System.out.println(title);
    		String rootPath=request.getServletContext().getRealPath("/");
    		if(!file.isEmpty()){
    			try {
    				InputStream is=file.getInputStream();
    				FileOutputStream fos=new FileOutputStream(
    						rootPath+"/"+"upload/"
    						+file.getOriginalFilename());
    				byte []cache=new byte[is.available()];
    				fos.write(cache);
    				is.close();
    				fos.flush();
    				fos.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    

    Commons Fileupload上传

    导包

    • commons-fileupload.jar
    • commons-io.jar

    在(servlet-name)-servlet.xml中

        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
            <property name="defaultEncoding" value="UTF-8"/>  
            <!-- 指定所上传文件的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->  
            <property name="maxUploadSize" value="200000"/>  
        </bean>
    

    在java中

    	@RequestMapping("upload2")
    	public void upload2(@RequestParam(value="title") String title,
                @RequestParam(value="upfile") MultipartFile file,
                HttpServletRequest request){
    		System.out.println(title);
    		String rootPath=request.getServletContext().getRealPath("/");
    		try {
                            //复制文件 FileCopyUtils.copy(文件字节流,上传的位置);
    			FileCopyUtils.copy(file.getBytes(), 
    					new File(rootPath+"/upload",file.getOriginalFilename()));
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    

    一个表单多个文件的上传

    	@RequestMapping("upload3")
    	public void upload3(@RequestParam(value="title") String title,
                @RequestParam(value="upfile") MultipartFile []file,
                HttpServletRequest request){
    		System.out.println(title);
    		String rootPath=request.getServletContext().getRealPath("/");
    		try {
    			for(MultipartFile temp:file)
    				FileCopyUtils.copy(temp.getBytes(), 
    						new File(rootPath+"/upload",temp.getOriginalFilename()));
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    
  • 相关阅读:
    python运算符
    CocoChina开发者大会
    iphone模拟器上不能安装从itunes下载的app
    Objective-C学习--源文件结构
    Objective-C学习笔记--复合
    Objective-C学习笔记--继承
    Objective-C学习笔记--实例化对象
    Objective-C学习笔记--@implementation
    Objective-C学习笔记--@interface
    C语言函数原型
  • 原文地址:https://www.cnblogs.com/occlive/p/13574413.html
Copyright © 2011-2022 走看看