<div class="iteye-blog-content-contain" style="font-size: 14px"><p>图片上传功能</p>
<input type=file class="upImg" name="myfiles" id="doc" onchange="javascript:setImagePreview();" multiple="multiple">
<div id="localImag" style="display: inline-block; width: 40%; vertical-align: top; text-align: center;"><img id="preview" style="diplay: none;" alt="" width="-1" height="-1" /></div>
<script type="text/javascript">// <![CDATA[
function setImagePreview() {
var docObj=document.getElementById("doc");
var imgObjPreview=document.getElementById("preview");
if(docObj.files && docObj.files[0]){
//火狐下,直接设img属性
imgObjPreview.style.display = 'inline-block';
imgObjPreview.style.width = '401px';
imgObjPreview.style.height = '201px';
$('#imgsrc').val(docObj.files[0].name);
try{
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
$.ajaxFileUpload({
//处理文件上传操作的服务器端地址(可以传参数,已亲测可用)
url:"/manage.onigiri/userInfo/cancleBindCard/imageFileUpload",
secureuri:false, //是否启用安全提交,默认为false
fileElementId:'doc', //文件选择框的id属性
fileSize:10240000,
allowType:'jpg,jpeg,png,JPG,JPEG,PNG,gif,GIF', //服务器返回的格式,可以是json或xml等
success:function(data, status){ //服务器响应成功时的处理函数
if(status == 'success'){
alert("图片上传成功!!!");
}
},
error:function(data, status, e){ //服务器响应失败时的处理函数
alert("图片上传失败!!!");
}
});
}catch(e){
alert("您上传的图片格式不正确,请重新选择!");
return false;
}
}else{
//IE下,使用滤镜
docObj.select();
var imgSrc = document.selection.createRange().text;
var localImagId = document.getElementById("localImag");
//必须设置初始大小
imgObjPreview.style.width = '401px';
imgObjPreview.style.height = '201px';
//图片异常的捕捉,防止用户修改后缀来伪造图片
try{
localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
}catch(e){
alert("您上传的图片格式不正确,请重新选择!");
return false;
}
imgObjPreview.style.display = 'none';
document.selection.empty();
}
return true;
}
// ]]></script></div>
/**后台文件处理*/
@RequestMapping(value="/cancleBindCard/imageFileUpload", method = RequestMethod.POST)
public Object imageFileUpload(@RequestParam MultipartFile[] myfiles, HttpServletRequest request, HttpServletResponse response){
Object retObj = null;
String type = request.getParameter("type");
//可以在上传文件的同时接收其它参数
response.setContentType("text/plain; charset=UTF-8");
String originalFilename = null;
String path1 = request.getSession().getServletContext().getRealPath("");
path1 = path1.substring(0, path1.length()-16);
String realPath = STATIC_PATH + imgUrl;
for(MultipartFile myfile : myfiles){
if(myfile.isEmpty()){
retObj = Msg.error("请选择文件后上传");
}else{
try {
Thread.sleep(100);
UploadAction upa = new UploadAction();
upa.sendMultiFile(myfile.getInputStream(), realPath + myfile.getOriginalFilename());
return Msg.info("上传成功!");
} catch (Exception e) {
if("attach"==type){
logger.error("文件[" + myfile.getOriginalFilename() + "]上传失败,堆栈轨迹如下");
}else{
logger.error("文件[" + originalFilename + "]上传失败,堆栈轨迹如下");
}
retObj = Msg.error("文件上传失败,请重试!");
}
}
}
return retObj;
}
//具体上传的文件HTTP处理没有写