java 用ajaxFileUpload上传文件到指定目录

来源:互联网 发布:手机我要开淘宝网店 编辑:程序博客网 时间:2024/06/06 20:25


    这是 一个上传文件到指定目录的功能。对于页面长相上没什么好说的,很丑的啦,但是这个上传的功能我想为大家分享下,用的是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;    }

好啦,完啦,就这么点代码,上传文件功能就完成了。总结下




==============================================================================================================================

==============================================================================================================================

==============================================================================================================================


0 0