ssm 文件上传与下载

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

jsp代码(文件上传)

<form id="upLoad" method="post">
	<input type="file" id="yaFile" name="file"><br/>
        <input id="fileSubmit" type="button" value="提交"> 
</form>
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();
	}
}
以上为文件上传、文件下载的全部代码,喜欢的朋友可以参考下。









  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值