spring中文件上传与下载

一、文件上传

背景:该文件上传功能是在spring框架中实现的,事先应做的准备:

(1)导入文件上传所需的jar包,commons-fileupload、commons-io

(2)在配置文件中applicationContext.xml添加如下内容

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

1.控制器中的代码:

@RequestMapping("/upload")
	public String uploadFile(HttpServletRequest request,@RequestParam("excelFile")MultipartFile file){
		//获取上传文件的名称
		String filePath = file.getOriginalFilename();
		File file2 = new File("file");
		if (!file2.exists()) {
			//创建临时目录
			file2.mkdir();
		}
		try {
			//文件存放的路径
			FileOutputStream fileOutputStream = new FileOutputStream(file2+"/"+filePath);
			fileOutputStream.write(file.getBytes());
			fileOutputStream.flush();
			fileOutputStream.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			return "error";
		} catch (IOException e) {
			e.printStackTrace();
			return "error";
		}
	
		return UPLOADFILESUCC_PAGE;	
	}


2.jsp中的代码:

<form action="${pageContext.request.contextPath}/p_company/importexceldata.do" method="post"  enctype="multipart/form-data" target="_top" class="form form-horizontal" id="forma" >
	<input type="file" class="input-text" accept=".xls,.xlsx"  id="" name="excelFile" style="width:250px"  required="required">
	<input class="btn btn-primary radius" type="submit" id="submit"  value="  导入  ">
					</form>

二、文件下载

控制器中代码:

@RequestMapping("/download")
	 public void downloadFile(String fileName,HttpServletResponse response){  
        response.setCharacterEncoding("utf-8");  
        response.setContentType("multipart/form-data");  
        response.setHeader("Content-Disposition", "attachment;fileName="+fileName);  
        try {  
            File file=new File(fileName);  
            System.out.println(file.getAbsolutePath());  
            InputStream inputStream=new FileInputStream("file/"+file);  
            System.out.println("11111111111"+file);
            OutputStream os=response.getOutputStream();  
            byte[] b=new byte[1024];  
            int length;  
            while((length=inputStream.read(b))>0){  
                os.write(b,0,length);  
            }  
            inputStream.close();  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
	
jsp中代码:

<form action="${pageContext.request.contextPath}/p_company/download.do" method="post"  target="_top" class="form form-horizontal" >
		<input type="text" class="input-text"   id="fileName" name="fileName" style="width:250px"  required="required">
		<input class="btn btn-primary radius" type="submit" id="submit" value="  下载  ">
					</form>
注:该下载方式是输入文件名称下载,包括后缀名



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值