ssm文件上传文件

来源:互联网 发布:qq飞车noble激光数据 编辑:程序博客网 时间:2024/04/29 09:29

ssm的基础必须jar包我就不说了;

文件上传主要是:

 commons-fileupload-1.3.1.jar

commons-io-2.2.jar

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 charset="utf-8">
    <title>用户登录</title>
    <%
pageContext.setAttribute("APP_path",request.getContextPath());
%>
</head>
<body>
    <%--文件上传的话需要enctype="multipart/form-data"--%>
    <h1>文件上传</h1>
    <form  action="${APP_path}/up" method="post" enctype="multipart/form-data">
       文件:<input type="file" name="file">
        <input type="submit" value="提交">
    
    </form>
    <hr>
    <h1>文件duo 上传</h1>
    <form  action="${APP_path}/upduo" method="post" enctype="multipart/form-data">
       文件1:<input type="file" name="file"><br>
         文件2:<input type="file" name="file"><br>
            文件4:<input type="file" name="file"><br>
               文件3:<input type="file" name="file"><br> 
        <input type="submit" value="提交">
    
    </form>
    
    <hr>  
    <form action="${APP_path}/down" method="get">  
        <input type="submit" value="下载">  
    </form>  
     <hr>
     <form action="${APP_path}/down2" method="get">  
        <input type="submit" value="下载2">  
    </form>  
</body>
</html>


springmvc.xml文件:

<!-- 上传文件的设置 ,maxUploadSize=-1,表示无穷大。uploadTempDir为上传的临时目录 -->  
   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    <!-- 设置默认编码 -->  
    <property name="defaultEncoding" value="utf-8"></property>  
    <!-- 上传图片最大大小5M-->   
    <property name="maxUploadSize" value="5242440"></property> 
   </bean>   

controller控制器:

package com.pw.controller;


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.Set;


import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;


@Controller
public class FileUploadController {

//多文件上传
@RequestMapping(value="/upduo",method=RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam("file") MultipartFile[] uploadFile , HttpServletRequest request,HttpServletResponse response) throws Exception {

String path = request.getServletContext().getRealPath("/upload/qq");
File dir=new File(path);
if(!dir.exists()){  
            dir.mkdirs();  
        }  
for (MultipartFile mul : uploadFile) {
System.out.println(mul.getOriginalFilename());

File file=new File(path,mul.getOriginalFilename());
mul.transferTo(file);

}

return "message";
}
//单文件上传
@RequestMapping(value="/up",method=RequestMethod.POST)
@ResponseBody
public  String upload(MultipartFile file,HttpServletRequest request) throws IOException {
String path = request.getSession().getServletContext().getRealPath("upload/ww");  
System.out.println(path+"*************path");
        String fileName = file.getOriginalFilename();  
        File dir = new File(path,fileName);   

         File dir = new File(path,string);   
        if(!dir.exists()){  
            dir.mkdirs();  
        }  
        //MultipartFile自带的解析方法  
        file.transferTo(dir);  

return "message";
}
@RequestMapping("/down2")  

//获取文件路劲下的东西
    public void down2(HttpServletRequest request,HttpServletResponse response) {
ServletContext application=request.getServletContext();
Set<String> strs=application.getResourcePaths("/upload");
for (String s : strs) {
System.out.println(s+"*****path");
}

}
   @RequestMapping("/down")  
    public void down(HttpServletRequest request,HttpServletResponse response) throws Exception{  
        //模拟文件,myfile.txt为需要下载的文件  
        String fileName = request.getSession().getServletContext().getRealPath("upload")+"/myfile.txt"; 
        
        //获取输入流  
        InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));  
        //假如以中文名下载的话  
        String filename = "下载文件.txt";  
        //转码,免得文件名中文乱码  
        filename = URLEncoder.encode(filename,"UTF-8");  
        //设置文件下载头  
        response.addHeader("Content-Disposition", "attachment;filename=" + filename);    
        //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型    
        response.setContentType("multipart/form-data");   
        BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());  
        int len = 0;  
        while((len = bis.read()) != -1){  
            out.write(len);  
            out.flush();  
        }  
        out.close();  
    }  



}




原创粉丝点击