解决网页异步上传图片时不断更换预览图片时数据库累积文件问题与ajaxUploadFile上传多个参数问题
https://code.youkuaiyun.com/snippets/297371.git
/*******************************jsp部分*****************************************/
<input name="photo" id="photo" type="file" class="input_file" onchange="ajaxPreImage()">
<input type="hidden" id="oldPhoto" name="oldPhoto" value="firstIndex"/>
/*******************************js代码部分*****************************************/
function ajaxPreImage(imgfileId, imgcontainerId) {
var date = $('#oldPhoto').val();
$.ajaxFileUpload({
fileElementId: 'photo',
url: '/BusinessAction!ajaxUploadImage.action?oldPhoto='+date, //重要技巧:上传两个参数给action
dataType: 'text',
// data: {oldPhoto:date},
beforeSend: function (XMLHttpRequest) {
//("loading");
},
success: function (data, textStatus) {
$('#img').attr('src',data.replace("<pre style=\"word-wrap: break-word; white-space: pre-wrap;\">","").replace("</pre>",""));
$('#oldPhoto').val(data.replace("<pre style=\"word-wrap: break-word; white-space: pre-wrap;\">","").replace("</pre>",""));
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('上传图片失败');
},
complete: function (XMLHttpRequest, textStatus) {
//("loaded");
}
});
}
/*******************************java部分*****************************************/
/**
* 异步上传图像
*/
public void ajaxUploadImage() {
String oldPhoto = request.getParameter("oldPhoto");
if(SimpleToof.checkNotNull(oldPhoto)) //删除旧的图片
SimpleToof.deleteFile(SimpleToof.getRealpath(oldPhoto));
if(!SimpleToof.checkNotNull(photo))throw new RuntimeException("你没有传上来数据");
String savePath = "";
try {
if (StringUtils.isNotEmpty(photoContentType)&& StringUtils.isNotEmpty(photoFileName) && null != photo) {
savePath = UploadUtil.saveFile(1, UploadUtil.IMAGE, null,
null, photo, photoFileName, photoContentType,
"/upload/temp", true);
}
} catch (Exception e) {
e.printStackTrace();
savePath = "ERROR";
}
WebUtil.AJAXMsg(savePath);
}