使用ajaxFileUpload与SpringMVC实现异步上传下载文件并返回json数据

因为最近要实现文件的异步上传并且不能使用表单提交,

过程略有一丝爆炸,所幸还是解决了.

还是直接贴代码吧.


jsp:

<input type="file" id="uFile"  name="uFile"  οnchange="ajaxFileUpload(this)"/>


js:

/* 上传 */
function ajaxFileUpload(fileName){
var msgDiv="";
var fileDiv="";
$.ajaxFileUpload({
      url:"请求的URL",
      fileElementId:'uFile',
      secureuri: false,
      dataType: 'text', 
      success: function (data,status){
      var ent=JSON.parse(data);    

if("0"==ent.msg){
alert("传成功");
}else{
alert("上传失败");


      },
      error: function (data,status)
      {
    alert("网络异常,上传失败");
       
      }
             }
);

}


底层@Controller:

@RequestMapping(value="/URL", method={RequestMethod.POST,RequestMethod.GET})
@ResponseBody
public String uploadPhoto(Model model,@RequestParam MultipartFile uFile, HttpServletRequest request, HttpServletResponse response, ModelMap map){
String fileName=uFile.getOriginalFilename().toString();
String  path="你要保存文件的URL";
String  msg="";
try{
if(uFile != null && !uFile.isEmpty()){
//拼接文件上传地址
path=path+fileName;
uFile.transferTo(new File(path));
msg="0";
}
}catch(Exception e){
msg="1";
e.printStackTrace();
}
model.addAttribute("msg",msg);
return toJson(model);
}


希望能够帮到有需要的朋友!

若有疑问可留言,

请注意:以下三项Name必须保持一致.

name="uFile"

fileElementId:'uFile'

@RequestParam MultipartFile uFile





使用SpringMVC实现下载文件功能




 //普通请求下载中文文件不出现乱码
    @RequestMapping(value="downloadFile")
    @ResponseBody
    public void downloadFile(HttpServletRequest request,HttpServletResponse response){
   

    try {

    String fileName="中文.rar";
    //文件上传后名称
    String fileNameEncode=new String(fileName.getBytes(),"ISO8859-1");
    //将正确并能识别的中文文件名转成ISO8859-1编码才可以正确下载
    response.setContentType("application/x-msdownload");
    // FileInputStream FileInputStreamRef=new FileInputStream(new File(request.getSession().getServletContext().getRealPath("")+"\\"+fileName));
    FileInputStream FileInputStreamRef=new FileInputStream(new File(new File(request.getSession().getServletContext().getRealPath("")+"\\"+fileName));
    response.setHeader("Content-Disposition","attachment;filename="+fileNameEncode);
    OutputStream osRef=response.getOutputStream();
    IOUtils.copy(FileInputStreamRef,osRef);
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}catch(FileNotFoundException e){
e.printStackTrace();
}
    catch (Exception e) {
    e.printStackTrace();
    }


    }




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值