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


    这是 一个上传文件到指定目录的功能。对于页面长相上没什么好说的,很丑的啦,但是这个上传的功能我想为大家分享下,用的是uploadfile 和springmvc。

    1.引入文件:

 

    2.页面元素:

    

选择上传文件:

      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 : '?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 用ajaxFileUpload上传文件到指定目录_第1张图片

java 用ajaxFileUpload上传文件到指定目录_第2张图片

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

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

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


你可能感兴趣的:(web前端,实用操作,java进阶)