ssm 文件上传与下载

最近项目用到文件上传文件下载的功能,因为之前没有做过,所以现学现卖一下。

jsp代码(文件上传)

js代码:这里我选择的是异步提交
$("#fileSubmit").click(function(){
	var formData = new FormData();
        formData.append("file", document.getElementById("upLoad").files[0]);  
		$.ajax({
            cache: true,
            type: "POST",
            url:'路径',
            data:formData,
            processData: false,//禁止jquery对DAta数据的处理,默认会处理
            contentType: false,//禁止设置请求类型
            async: false,
            error: function(request) {
                alert("上传失败");
            },
            success: function(data) {
                  if(data==0){          
                        alert("上传成功");
} } });});
 
  
java代码:文件上传
/**
     * 文件上传功能
     * @param file
     * @return
     * @throws IOException 
     */
    @RequestMapping("/upload")
	@ResponseBody
    public String upload(MultipartFile file,String faUrl,HttpServletRequest request) throws IOException{
        String path = request.getSession().getServletContext().getRealPath("upload");//文件上传路径
        String fileName = file.getOriginalFilename();  
        File dir = new File(path ,fileName);        
        if(!dir.exists()){
            dir.mkdirs();
        }
        //MultipartFile自带的解析方法
        file.transferTo(dir);
        return "0";
    }
js代码:文件下载
function onClick() {
	var url ="路径"
	document.location.href=url;
}
java代码:文件下载
/**
 * 文件下载功能
 * @param request
 * @param response
 * @throws Exception
 */
@RequestMapping("/fileDown")
@ResponseBody
public void fileDown(HttpServletRequest request,HttpServletResponse response){
	//通过文件名找出文件的所在目录
	String path = request.getSession().getServletContext().getRealPath("upload");
	ServletOutputStream out;
	//得到要下载的文件
	File file = new File(path);
	try {
		//设置响应头,控制浏览器下载该文件
		response.setContentType("multipart/form-data");
		//获得浏览器信息,并处理文件名
		String headerType=request.getHeader("User-Agent").toUpperCase();
		String fileName = null;
		if (headerType.indexOf("EDGE") > 0||headerType.indexOf("MSIE")>0||headerType.indexOf("GECKO")>0) {  
			fileName=URLEncoder.encode(file.getName(), "UTF-8");
		}else{
			fileName= new String(file.getName().replaceAll(" ", "").getBytes("utf-8"), "iso8859-1");
		}
		response.addHeader("Content-Disposition", "attachment;filename="+fileName);
		response.addHeader("Content-Length", "" + file.length());
		FileInputStream inputStream = new FileInputStream(file);

		out = response.getOutputStream();

		int b = 0;
		byte[] buffer = new byte[1024];
		while (b != -1) {
				b = inputStream.read(buffer);
				//写到输出流(out)中
				if(b!=-1)
				out.write(buffer, 0, b);
		}
		inputStream.close();
		out.close();//关闭输出流
		out.flush();
	} catch (IOException e) {
		e.printStackTrace();
	}
}
以上为文件上传、文件下载的全部代码,喜欢的朋友可以参考下。









你可能感兴趣的:(文件上传与下载,jsp,java,文件上传,文件下载,ssm)