java 用ajaxFileUpload上传文件到指定目录
2015-12-03 14:35
232 查看
这是 一个上传文件到指定目录的功能。对于页面长相上没什么好说的,很丑的啦,但是这个上传的功能我想为大家分享下,用的是uploadfile 和springmvc。
好啦,完啦,就这么点代码,上传文件功能就完成了。总结下
==============================================================================================================================
==============================================================================================================================
==============================================================================================================================
1.引入文件:
<script type="text/javascript" src="<c:url value="/lib/jquery/jquery.min.js"/>"></script> <script src="<c:url value="/js/page_js/uploadfile.js"/>"></script>
2.页面元素:
<div style="padding:10px; margin:10px; border: 1px solid #5bc0de; border-radius:5px"> <b style="color:#333; font-size:14px;"> 选择上传文件: </b> <input type="file" id="URL_1" name="URL_1" style=" display: inline-block;"> </div>
3.js
$(document).ready(function() { $("#URL_1").on("change", function() { // var userid=$("#user_id",window.parent.document).val(); var filePath = $("#URL_1").val(); // filepathVAL(filePath); ajaxupload('URL_1'); }); }); function filepathVAL(filePath) { if (filePath == null || filePath == "") { alert("您未选择要上传的文件!"); return false; } var index = filePath.lastIndexOf("."); var fileExt = filePath.substring(index + 1); var picture = [ "png", "gif", "bmp", "jpg", "jpeg" ]; for ( var i in picture) { if (fileExt.toLowerCase() != picture[i]) { if (i != picture.length - 1) { continue; } alert("您上传的不是图片请重新选择!"); return false; } else { break; } } } function ajaxupload(fileElementId) { $.ajaxFileUpload({ url : '<c:url value="/manage/upload.do"/>?fileElementId=' + fileElementId + '&code=${code}', secureuri : false, fileElementId : fileElementId, // 文件选择框的id属性 dataType : 'json', // 服务器返回的格式类型 type : 'post', success : function(data, status) // 成功 { if (data.flag == "success") { alert("上传成功"); $.fn.ulynlist.refresh($("#ulyn-table-id")); } else { layer.alert("上传失败"); } }, error : function(data, status, e) // 异常 { layer.alert(data.flag + " " + status); layer.alert("出错了,请重新上传!"); } }); }
4.java部分
@RequestMapping(value = "/upload.do", method = RequestMethod.POST) public void uploadQuestionPic(String fileElementId,HttpServletRequest request, HttpServletResponse response) throws Exception { ManageService manageService = (ManageService)ServiceLocator.getBeanByClass(ManageService.class); String code = request.getParameter("code"); JSONObject resultObj = new JSONObject(); try { String saveDir = manageService.queryIMG(code); if (!StringUtils.isBlank(saveDir)) { resultObj = uploadFiles(fileElementId, saveDir, request); String savaFileName = resultObj.getString("newFileName"); manageService.saveFileLogs(code,savaFileName);//保存文件日志 }else { resultObj.put("flag", "上传出错啦,没有查询到文件保存路径"); } // String saveDir = "D:\\test"; // resultObj = uploadFiles(fileElementId, saveDir, request); //{"flag":"success","newFileName":"1449054407024---王力宏002.jpg"} //写日志 TODO something.... } catch (Exception e) { } finally{ response.setContentType("text/html"); response.getWriter().write(resultObj.toJSONString()); } }
/** * 文件保存 * @param fileElementId 文件选择框的id属性 * @param saveDir 文件保存的绝对路径 * @param request * @return JSONObject */ private JSONObject uploadFiles(String fileElementId, String saveDir,HttpServletRequest request){ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; JSONObject resultObj = new JSONObject(); /**得到图片保存目录的真实路径**/ String logoRealPathDir = saveDir;// String saveDir = "D:\\test"; /**根据真实路径创建目录**/ File logoSaveFile = new File(logoRealPathDir); if(!logoSaveFile.exists()){ logoSaveFile.mkdirs(); } /**页面控件的文件流**/ MultipartFile multipartFile = multipartRequest.getFile(fileElementId); /**获取文件的后缀**/ String filenameString = multipartFile.getOriginalFilename(); System.out.println(filenameString); String suffix = multipartFile.getOriginalFilename().substring (multipartFile.getOriginalFilename().lastIndexOf(".")); /**拼成完整的文件保存路径加文件**/ String name = + System.currentTimeMillis()+"---"+filenameString;//suffix; String fileName = logoRealPathDir + File.separator+name; File file = new File(fileName); String data = file.getPath(); try { multipartFile.transferTo(file); resultObj.put("flag", "success"); resultObj.put("newFileName", name); } catch (IllegalStateException e) { e.printStackTrace(); resultObj.put("flag", "上传出错啦,文件路径不对"); } catch (IOException e) { e.printStackTrace(); resultObj.put("flag", "上传出错啦,文件路径不对"); } return resultObj; }
好啦,完啦,就这么点代码,上传文件功能就完成了。总结下
==============================================================================================================================
==============================================================================================================================
==============================================================================================================================
相关文章推荐
- java Swing 图片缓冲机制
- spring源码解析-Aop
- isAssignableFrom与instanceof的区别
- 解决JAVA环境变量配置javac不可用问题
- spring源码解析-Webmvc
- JAVA静态变量
- java必学必会之方法的重载(overload)
- JAVA静态的主函数
- java ImageIO处理图像的封装
- java 时区处理机制(0时区转换到服务器时区)
- Java反射的用法详解
- java 字符串分割处理split及特殊符号
- (Eclipse)创建你的第一个android项目
- JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
- 使用命令行对java程序的编译运行和打包
- java怎么用一行代码初始化ArrayList
- SpringMvc获取getbean
- java中"|""||""&"""&&"区别
- JAVA静态方法使用注意事项
- 基于xml的Spring多数据源配置和使用