spring中文件上传与下载

来源:互联网 发布:java applet程序 编辑:程序博客网 时间:2024/05/16 09:02

一、文件上传

背景:该文件上传功能是在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>
注:该下载方式是输入文件名称下载,包括后缀名



1 0
原创粉丝点击