您的位置:首页 > 编程语言 > Java开发

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

2017-01-17 15:08 1036 查看
因为最近要实现文件的异步上传并且不能使用表单提交,

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

还是直接贴代码吧.

jsp:

<input type="file" id="uFile"  name="uFile"  onchange="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){
[b]alert("传成功");

}else{
alert("上传失败");


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

}
[/b]

底层@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();

    }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐