Java上传文件图片到服务器的方法
这里我记录一个比较简单方便操作的JAVA上传文件图片到服务器并且保存,具体内容如下
首先是页面html的 我这是提交一个文件和类型
我是添加一张临时图片得到微信的media_id保存数据库!
这里我记录一个比较简单方便操作的JAVA上传文件图片到服务器并且保存,具体内容如下
首先是页面html的 我这是提交一个文件和类型
我是添加一张临时图片得到微信的media_id保存数据库!
预览图片js
functionpreviewImage(file,prvid){ /*file:file控件 *prvid:图片预览容器 */ vartip="Expectjpgorpngorgif!";//设定提示信息 varfilters={ "jpeg":"/9j/4", "gif":"R0lGOD", "png":"iVBORw" } varprvbox=document.getElementById(prvid); prvbox.innerHTML=""; if(window.FileReader){//html5方案 for(vari=0,f;f=file.files[i];i++){ varfr=newFileReader(); fr.onload=function(e){ varsrc=e.target.result; if(!validateImg(src)){ alert(tip) }else{ showPrvImg(src); } } fr.readAsDataURL(f); } }else{//降级处理 if(!/\.jpg$|\.png$|\.gif$/i.test(file.value)){ alert(tip); }else{ showPrvImg(file.value); } } functionvalidateImg(data){ varpos=data.indexOf(",")+1; for(vareinfilters){ if(data.indexOf(filters[e])===pos){ returne; } } returnnull; } functionshowPrvImg(src){ varimg=document.createElement("img"); img.src=src; prvbox.appendChild(img); } }
之后就是后台得到
@RequestMapping(params="method=addCircle") publicStringaddCircle(HttpServletResponseresponse,HttpServletRequestrequest)throwsIOException{ request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); Stringpath=request.getSession().getServletContext().getRealPath( "/BackstageShoppingWebsite/images/addCircleimage");//保存的服务器地址 Mapmap=Upload .upload(request,1024*1024*10,path); Stringfile=map.get("file");//名称 Stringimage=map.get("type");//图像 StringnewFile=map.get("newFile");//地址 returnnull; }
好了现在重点就是看Upload这个类了这个类基本是封装好了的,需要加的东西可以自己取看看然后修改,然后这个类用的是cos.jar包
packagecom.web.weixin.bean; importjava.io.File; importjava.io.IOException; importjava.util.Date; importjava.util.HashMap; importjava.util.Map; importjavax.servlet.http.HttpServletRequest; importcom.oreilly.servlet.multipart.FilePart; importcom.oreilly.servlet.multipart.MultipartParser; importcom.oreilly.servlet.multipart.ParamPart; importcom.oreilly.servlet.multipart.Part; publicclassUpload{ publicstaticMapupload(HttpServletRequestrequest, intmaxSize,Stringpath){ //以map形式保存数据key对应保存的是获取界面上的name名称value保存的是获取界面上的name对应的值 Map map=newHashMap (); Partpart=null; try{ MultipartParsermrequest=newMultipartParser(request,maxSize); mrequest.setEncoding("utf-8"); //遍历所有的part组 while((part=mrequest.readNextPart())!=null){ if(part.isFile()){//判断是否是文件 FilePartfilepart=(FilePart)part;//转化成文件组 StringfileName=filepart.getFileName();//得到文件名 if(fileName!=null&&fileName.length()>0){ //取得扩展名 StringfileExtName=fileName.substring( fileName.lastIndexOf(".")+1).toLowerCase(); //只上传图片//判断图片上传的格式是否符合后缀名是否有效 if(fileExtName.equalsIgnoreCase("jpeg") ||fileExtName.equalsIgnoreCase("png")|| fileExtName.equalsIgnoreCase("jpg") ||fileExtName.equalsIgnoreCase("gif") ||fileExtName.equalsIgnoreCase("ico") ||fileExtName.equalsIgnoreCase("bmp") ||fileExtName.equalsIgnoreCase("flv") ||fileExtName.equalsIgnoreCase("mp4") ||fileExtName.equalsIgnoreCase("mp3")){ /*StringnewFileName=newDate().getTime()+"."+fileExtName; //重新改文件名文件名+扩展名*/ StringnewFileName=newDate().getTime()+fileName;//不改图片名字 StringnewPath=path+"/"+newFileName;//文件处理文件上传的路径 FilenewFile=newFile(newPath); filepart.writeTo(newFile);//将文件真正写入到对应的文件夹中 //filepart.getName()得到request要接收的参数的名字 map.put(filepart.getName(),newFileName);//把文件信息保存到map中 map.put("newFile",newFile.toString()); }else{ map.put("geshi","geshi"); continue; }//说明上传的不是图片 }else{ map.put("yes","yes"); continue;//说明没有选择上传图片 } }elseif(part.isParam()){//判断是否是参数 ParamPartparamPart=(ParamPart)part; map.put(paramPart.getName(),paramPart.getStringValue()); } } }catch(IOExceptione){ e.printStackTrace(); } returnmap; } }
cos.jar包下载,点击打开链接
本文已被整理到了《Java上传操作技巧汇总》,欢迎大家学习阅读。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。