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对应的值
Mapmap=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上传操作技巧汇总》,欢迎大家学习阅读。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。