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

这篇博客分享了如何使用ajaxFileUpload插件结合SpringMVC,在Java环境中实现文件上传到指定目录的功能。内容包括引入所需文件、设置页面元素、编写JavaScript以及Java处理代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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

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




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

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值