分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

ssm框架下的文件上传和文件下载

发布时间:2023-09-06 01:51责任编辑:郭大石关键词:文件上传

最近在做一个ssm的项目,遇到了添加附件和下载的功能,在网上查了很多资料,发现很多都不好用,经过摸索,发现了一套简便的方法,和大家分享一下。
1.文件上传
前台页面使用了easyui,代码如下:

<table><tr><td>附件</td><td><input class="easyui-filebox" type="file" name="file1" id="file1"><a href="javascript:imageUpload()" class="easyui-linkbutton">上传</a></td><td><input type="hidden" ?id="ssFile" name="ssFile"> <!--用于文件名回显--></td></tr><table

JS方法调用后台:

function imageUpload(){var file1 = document.getElementById("file1"); ?var ssFile = document.getElementById("ssFile"); ?????ssFile.value = file1.value.substring(12); ???//取出文件名,并赋值回显到文本框,用于向后台传文件名 ???????$.ajaxFileUpload({ ???????????url : ‘${pageContext.request.contextPath}/bug/uploadFile.do‘, //用于文件上传的服务器端请求地址 ???????????fileElementId : ‘file1‘, //文件上传空间的id属性 ?<input type="file" id="file" name="file" /> ???????????type : ‘post‘, ???????????dataType : ‘text‘, //返回值类型 一般设置为json ???????????success : function(data, status) //服务器成功响应处理函数 ???????????{ ???????????????alert("文件上传成功"); ???????????}, ???????????error : function(data, status, e)//服务器响应失败处理函数 ???????????{ ???????????????alert("文件上传失败"); ???????????} ???????}); ???}

  后台实现:

@RequestMapping(value="/uploadFile.do" ,produces="text/html;charset=utf-8" ) ?????public @ResponseBody String importPicFile1( ??@RequestParam MultipartFile file1,HttpServletRequest request){ ???????????????????????????????Map<String,Object> map= new HashMap<String,Object>(); ????????????????if(file1.isEmpty()){ ?????????????????????map.put( "result", "error"); ?????????????????????map.put( "msg", "上传文件不能为空" ); ???????????????} else{ ?????????????????????String originalFilename=file1.getOriginalFilename(); ?????????????????????String fileBaseName=FilenameUtils.getBaseName(originalFilename); ????????????????????Date now = new Date(); ???????????????????SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ????????????????????String floderName=fileBaseName+"_" +df.format(now); ??????????????????????try{ ?????????????????????????????//创建要上传的路径 ????????????????????????File fdir = new File("D:/file"); ????????????????????????if (!fdir.exists()) { ?????????????????????????fdir.mkdirs(); ?????????????????????????} ?//文件上传到路径下 ?????????????????????????FileUtils. copyInputStreamToFile(file1.getInputStream(), new File(fdir,originalFilename)); ????????????????????????????//coding ???????????????????????????map.put( "result", "success"); ?????????????????????????????????????????????????} catch (Exception e) { ???????????????????????????map.put( "result", "error"); ???????????????????????????map.put( "msg",e.getMessage()); ?????????????????????????????????????????????????} ???????????????} ?

  2.文件下载

前台页面:

<table><tr><td>附件</td><td><a href="" id="ssUrl" class="easyui-linkbutton">下载</a></td></tr></table>

JS方法:

$("#ssUrl").attr(‘href‘,"${pageContext.request.contextPath}/bug/download?filename="+fileName) //将后台的路径和文件名赋值给a标签 fileName需要自己从数据库中查出 

后台方法:

/** ????* 文件下载 ????* @throws IOException ?????*/ ???@RequestMapping(value="/download",method=RequestMethod.GET) ???public void download(@RequestParam(value="filename")String filename, ???????????HttpServletRequest request, ???????????HttpServletResponse response) throws IOException { ???????//模拟文件,myfile.txt为需要下载的文件 ?????????String path = "D:\\file"+"\\"+filename; ?????????//获取输入流 ?????????InputStream bis = new BufferedInputStream(new FileInputStream(new File(path))); ???????//转码,免得文件名中文乱码 ?????????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(); ?????}

  本人亲测可用,大家有什么意见可以交流,第一次写博客,如有疏漏,请多多指教!

ssm框架下的文件上传和文件下载

原文地址:https://www.cnblogs.com/noahpk/p/8949862.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved