上传图片方法

本文介绍了一种使用Java实现头像上传的方法,通过两种不同方式的控制器代码展示了如何处理文件上传,并利用Ajax实现异步更新头像预览。此外,还提供了一个简单的JSP页面示例及所需的JavaScript脚本。

controller

	@RequestMapping(value = "upload/uploadPortrait")
	@ResponseBody
	public JSONObject uploadUserImages(HttpServletRequest request,
			@RequestParam("portrait") CommonsMultipartFile file) {
		JSONObject json = new JSONObject();
		String imgPath = "";

		if (file != null) {
			imgPath += file.getOriginalFilename();
			String realPath = request.getSession().getServletContext()
					.getRealPath("/upload");
			try {
				FileUtils.copyInputStreamToFile(file.getInputStream(),
						new File(realPath, file.getOriginalFilename()));
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		json.put("imgPath", imgPath);

		return json;
	}

----------------------------------------------------------------------------------------


@RequestMapping(value = "upload/uploadPortrait")
	@ResponseBody
	public JSONObject uploadUserImages(HttpServletRequest request
			) {
		JSONObject json = new JSONObject();
		String imgPath = "";
		
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
		CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest
			     .getFile("portrait");
		if (file != null) {
			imgPath += file.getOriginalFilename();
			String realPath = request.getSession().getServletContext()
					.getRealPath("/upload");
			try {
				FileUtils.copyInputStreamToFile(file.getInputStream(),
						new File(realPath, file.getOriginalFilename()));
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		json.put("imgPath", imgPath);

		return json;
	}


备注:两种写法,效果一样。

jsp页面

<script src="<%=path%>/scripts/ajaxupload.js"></script>

 <script type="text/javascript">
$(function(){
		var isCanSub = true;
		
		if(!isCanSub){
			return;
		}
		isCanSub = false;
		/* 图片上传 */
		var $e = $(".personal_jm_tx");
		var $uploader = $("#-upload");
		var $image = $e.find("img");
		new AjaxUpload($uploader, {
		name: 'portrait',
		action: '<%=path%>/upload/uploadPortrait.do',
		responseType: 'json',
		onChange: function (file, extension) {
		},
		onSubmit: function (file, extension) {
		//this.disable();
		},
		onComplete: function (file, response) {
		$uploader.show();
		if (response.success) {
		$image.attr("src", response.userImageUrl);
		} else {
		$(".pop").css("display", "block");
		isCanSub = true;
		alert(response.imgPath);
		var element = document.getElementById('zsImg');
		element.src = "<%=path%>/upload/"+response.imgPath;
		
		}
		}
		});
		
	})

</script>

--------------------------------------------------------------------------------------------
<p><a href="#" id="-upload" style="display: block" class="shangchuan">[更换头像]</a></p>
  	<img id="zsImg" src="">

js名字是:ajaxupload.js

 

 

转载于:https://my.oschina.net/whatwhy/blog/821924

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值