在文件上传的时候用的插件是Huploadify,在这里有一个非常重要的问题就是在上传时保存文件的路径,在这里栽了很大的跟头,首先将上传的文件保存在项目的一个文件夹中
然后在写这句话的时候很重要
// 转存文件 File saveDir = new File(request.getSession().getServletContext().getRealPath("/")+realPath)
这里要写项目的跟路径,在eclipse中这个可以自己手动设置,在Tomcat里。用到的技术有json,还有就是不要玩记到json包,下面就将上传文件代码写出
一:导入
还有json,这里就不给了
二:前端<script type="text/javascript" src="/Huploadify/jquery.Huploadify.js"></script> <script type="text/javascript"> $('#file').Huploadify({ 'uploader': '/ht/uploadFile', 'fileObjName': 'fileToUpload', 'fileTypeExts': '*.image; *.gif; *.jpeg; *.png; *.bmp;*.doc;*.docx;*.xls;*.xlsx;*.ppt; *.htm; *.html; *.xml; *.txt;', 'auto': true, 'multi': false, 'fileObjName': 'file', 'fileSizeLimit': 20480 * 60, 'showUploadedPercent': true, 'showUploadedSize': true, 'onUploadSuccess': function (file, data) { var josobj = JSON.parse(data); var url=josobj.src; var fileName=josobj.name; $("#fileAddress").val(url); $("#video_address").val(fileName); $('#file_addressShow').html(' <span class="picSpan"><img class="picture" height="80px" width="80px" vedioSrc="' + josobj.src + '" src="${ctxStatic}/Huploadify/fujian.png"></img>' + josobj.name + '</span>'); }, 'onUploadError': function (file, errorCode, errorMsg, errorString) { alert('文件' + file.name + ' 上传错误: ' + errorMsg); }, }); </script>
三:后台/** * 文件上传 */ @ResponseBody @RequestMapping(value = {"uploadFile"}) public LayFileJsonData uploadVedio(HttpServletRequest request, HttpServletResponse response, MultipartFile file) throws IllegalStateException, IOException { String filepath = ""; LayFileJsonData data = new LayFileJsonData(); // 判断文件是否为空 if (!file.isEmpty()) { // 文件保存路径 String realPath = "files/"; // 转存文件 File saveDir = new File(request.getSession().getServletContext().getRealPath("/")+realPath); //如果目录不存在,就创建目�? if(!saveDir.exists()){ saveDir.mkdir(); } String type = file.getOriginalFilename().substring(file.getOriginalFilename().indexOf(".") + 1); //String type = file.getContentType().substring(file.getContentType().indexOf("/") + 1); file.transferTo(new File(request.getSession().getServletContext().getRealPath("/") + realPath + Md5Util.parseStrToMd5L32(file.getOriginalFilename()+new SimpleDateFormat("yyyy-MM-dd").format(new Date()))+"." + type)); filepath = request.getContextPath() + realPath + Md5Util.parseStrToMd5L32(file.getOriginalFilename()+ new SimpleDateFormat("yyyy-MM-dd").format(new Date()))+"." + type; data.setName(file.getOriginalFilename()); data.setSrc(filepath); } return data;
四:创建LayFileJsonData类,方便在上面调用public class LayFileJsonData { private String name;//文件存储的名字 private String src;//文件存储的路径 public void setName(String name) { this.name = name; } public String getName() { return name; } public void setSrc(String src) { this.src = src; } public String getSrc() { return src; } }上传文件大致就是上面几个步骤。