spring 携带参数文件上传实例

视图层:


 


        

	


    js:

function ajaxFileUpload(){
 		//主体id、分支id
	 	 var data = {"bizMainId":"","bizSubId":"","typeCode":"","typeName":"","name":"","remarks":""};
 		 ajaxFileUploadReplaceServerForCommon(data,"uploadFileId",uploadSuccess);
 	}
	//附件上传成功回调
	function uploadSuccess(data) {
		//只要文件夹的路径
		$('#attachmentName').val(data.path);
	}
function ajaxFileUploadReplaceServerForCommon(data,fileElementId,callback){
  //处理文件上传操作的服务器端地址(可以传参数,已亲测可用) 
	$.ajaxFileUpload({
      url:getRealPath()+'/comAttachmentController/fileUploadAndReplaceServer.do?',
      secureuri:false,             //是否启用安全提交,默认为false
      data:data,
      fileElementId:"uploadFileId",//文件选择框的id属性
      dataType:'json',                       
      success:callback,
      error:function(){ //服务器响应失败时的处理函数
		parent.layer.alert("文件上传失败!")
      }
  });
}

控制层:

	@ResponseBody
	@RequestMapping(value="/fileUploadAndReplaceTag")
	public Map fileUploadAndReplaceTag(@RequestParam("file") MultipartFile[] myfiles,ComAttachmentEntity attachment) {
		Map maps = new HashMap();
		//TSUser user = ResourceUtil.getSessionUserName();
		StringBuffer realPath = new StringBuffer("");
		StringBuffer realName = new StringBuffer("");
		if (myfiles!=null) {
			if (myfiles!=null) {
				for(MultipartFile myfile : myfiles){
					//默认标签文件名
					String defaultName = ComAttachmentEntity.DEFAULT_LABLE_FILE;
					String filename = myfile.getOriginalFilename();
					String extName = "";
					//获得文件扩展名
					if ((filename != null) && (filename.length() > 0)) {   
			            int dot = filename.lastIndexOf('.');   
			            if ((dot >-1) && (dot < (filename.length() - 1))) {   
			            	extName = filename.substring(dot);   
			            }   
			        } 
					realName = realName.append(defaultName).append(extName);
					//服务器中存储位置
					realPath.append(ResourceUtil.getConfigByName(ComAttachmentEntity.UPLOAD_ROOT_PATH)).append("/");
					realPath.append(realName);
					File file = new File(realPath.toString());
					//如果文件不存在则创建
					if (!file.exists() && !file.isDirectory()) {       
					    file.mkdirs();
					}
					try {
					 	myfile.transferTo(file);//转换文件
					}catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
			if(!realName.equals("")){
				maps.put("path",realName);//附件id
				maps.put("success",true);
				maps.put("msg","附件上传成功!");
			}else {
				maps.put("success",false);
				maps.put("msg","附件上传失败!");
			}
		}else{
			maps.put("msg", "您未选择文件!");
		}
		return maps;
	}

你可能感兴趣的:(常用实现实例)