ajaxfileupload.js
js代码如下:
function uploadPic(){
var arr = new Array();
var fileName=$("#infoPicture").val();
if(fileName!=null && fileName!=''){
arr = fileName.split(".");
if(arr[1]=='jpg'||arr[1]=='gif'){
$.ajaxFileUpload({
url: '${base}/info/ajaxUpLoadImg.json', //用于文件上传的服务器端请求地址
type: 'post',
secureuri: false, //一般设置为false
fileElementId: "infoPicture", //文件上传空间的id属性 <span style="font-family: Arial, Helvetica, sans-serif;"><input type="file" name="infoPicture" id="infoPicture"/></span>
dataType: 'json', //返回值类型 一般设置为json
success: function (data, status) //服务器成功响应处理函数
{
$("#ImgPr").attr("src", data.imgurl);
$("#infoPic").val(data.imgurl);//把服务器返回的图片地址,放在隐藏域中,方便ajax提交表单时,图片地址的获取。
},
error: function (data, status, e)//服务器响应失败处理函数
{
alert(e);
}
})
}else{
alert("请上传jpg||gif文件");
return;
}
}else{
alert("请选择文件");
return;
}
}
html代码:
<tr>
<td width="25%"> 上传图片: </td>
<td width="50%"><input type="file" name="infoPicture" id="infoPicture"/><input type="hidden" name="infoPic" id="infoPic"/></td>
</tr>
<tr>
<td width="25%"> 图片预览: </td>
<td width="50%"><img id="ImgPr" width="120" height="120" /><input type="button" id="upload" value="upload" οnclick="uploadPic()"/></td>
</tr>
服务器段代码
@RequestMapping(value="/ajaxUpLoadImg",method=RequestMethod.POST)
@ResponseBody
public void ajaxUpLoadImg(@RequestParam("infoPicture")MultipartFile fileToUpload,HttpServletRequest request , HttpServletResponse response) throws Exception {
response.setContentType("text/html;charset=UTF-8");
String originalFilename = fileToUpload.getOriginalFilename();
if (StringUtils.isNotEmpty(originalFilename)) {
String arr[] = originalFilename.split("\\.");
String fileName = this.getRandomFileName()+"."+arr[1];
FileUtils.copyInputStreamToFile(fileToUpload.getInputStream(), new File(bannerImgUpload,fileName));
PrintWriter out = response.getWriter();
String res = "{imgurl:'" + bannerImgUpload+ fileName + "'}";
out.print(res);
out.flush();
}
}
PS:如果不这样写
<span style="font-size:18px;color:#ff0000;">response.setContentType("text/html;charset=UTF-8");</span>
,返回值会是这样的<pre style="word-wrap: break-word; white-space: pre-wrap;">frfrfrg</pre>