ajax上传文件

1.jsp

<form class="form-inline" id="form1" enctype="multipart/form-data"> 
<div style="float:left; width: 140px;height: 194px;background-color : #fff;position:relative ;left:30px;top:20px; text-align: center;padding-top:80px">
						<img src="" alt=""
							style="width: 140px;height: 195px;position: absolute;top:0px;left:0px"
							id="imgIdent" οnclick="uploudFileIdent('file')">
							<input type="file" style="display: none" name="file" id="file" οnchange="uploadFile('imgIdent','file','form1','picture','${APP_PATH }')"/>
							<button type="submit" class="btn btn-link"
								style="margin: 0 auto;width: 100px;font-size: 16px;letter-spacing: 2px;"
								οnclick="uploudFileIdent('file')">证件照</button> 
						</img>
				</div>
</form>

2.js

/*上传图片-通用方法*/
function  uploadFile(img_id,file_name,from_id,input_id,base_url){
	 var form=document.getElementById(from_id);
    var fd =new FormData(form);
    fd.append("fileName",file_name);
    fd.append("oldUrl",$("#"+input_id).val());
   	$.ajax({
		type: "POST",
		data :fd,
		url :base_url+"/uploadFile.action", 
		 processData: false,  // 告诉jQuery不要去处理发送的数据
        contentType: false,   // 告诉jQuery不要去设置Content-Type请求头
		success :function(data){
			//验证图片格式,并将图片回显
			setImage(file_name,img_id);
			//setImageCard1("cardid1_file","cardid1");			
			var backData = JSON.parse(data);
			var url = backData.url;
			 /* 将返回的url放入指定的隐藏域中 */
			// document.getElementById("idCard1").value=url;
			$("#"+input_id).val(url);
		}
	});

}
function uploudFileIdent(obj){
	$("#"+obj).click();
}

3.java

	@RequestMapping("uploadFile")
	@ResponseBody
	public String uploadFile(HttpServletRequest request) throws IOException{
		MultipartHttpServletRequest req=(MultipartHttpServletRequest) request;
		String fileName=req.getParameter("fileName").toString();
		String oldUrl=req.getParameter("oldUrl").toString();
		//System.out.println("文件名称是:"+fileName+"原来的图片路径是:"+oldUrl);
		 MultipartFile file=req.getFile(fileName);
		String orgName = file.getOriginalFilename();
		String newOrgName = StringUtils.substringAfterLast(orgName, ".");
		String newName = "";
		byte[] bytes = new byte[10240];
		bytes = file.getBytes();
		long size = file.getSize();
		if(size<10240 || size>1024000*24){ 
	//		setMsg("文件大小不符合规定,请上传大于10k、小于3MB的照片");
			return null;
		}
		/*删除之前的文件*/
		if(oldUrl.length()>5){
			String deletePath="D:"+oldUrl.substring(5);
			File deleteFile=new File(deletePath);
			deleteFile.delete();
		}
		
		try {
//			newName = getRandomString(5) + "." + newOrgName;
			 newName = getRandomString(16)+"."+newOrgName;
			 File file1 = new File("D:/BZXTWJ"+"\\csdnapi\\" +uniqueid+ "\\picture\\" + newName);
			if (!file1.exists()) {
				file1.mkdirs();
			}
			file.transferTo(file1);
		} catch (Exception ex) {
			return null;
		}
		Map map = new HashMap();
		String url = "/file/BZXTWJ/csdnapi/"+uniqueid+ "/picture/" + newName;
		map.put("url", url);
		String jsonString = JSON.toJSONString(map);
		return jsonString;
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值