首页 > 开发 > Java > 正文

Java上传文件图片到服务器的方法

2024-07-13 10:16:19
字体:
来源:转载
供稿:网友

这里我记录一个比较简单方便操作的JAVA上传文件图片到服务器并且保存,具体内容如下

首先是页面html的   我这是提交一个文件和类型

<div style="border: 1px solid red;">   我是添加一张临时图片得到微信的media_id保存数据库!   <form action="xxxxxxxxm"   enctype="multipart/form-data" method="post">   <div style="display: none;">    <input type="text" value="IMAGE" name="type"/>   </div>   上传图片:<input type="file" name="file"    onchange="previewImage(this, 'prvid')" multiple="multiple"><br />   <input type="submit" value="提交" />   </form>   <div id="prvid">预览容器</div>  </div> 

预览图片js

function previewImage(file, prvid) {  /* file:file控件  * prvid: 图片预览容器  */  var tip = "Expect jpg or png or gif!"; // 设定提示信息  var filters = {  "jpeg" : "/9j/4",  "gif" : "R0lGOD",  "png" : "iVBORw"  }  var prvbox = document.getElementById(prvid);  prvbox.innerHTML = "";  if (window.FileReader) { // html5方案  for (var i = 0, f; f = file.files[i]; i++) {   var fr = new FileReader();   fr.onload = function(e) {   var src = 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);  }  }   function validateImg(data) {  var pos = data.indexOf(",") + 1;  for ( var e in filters) {   if (data.indexOf(filters[e]) === pos) {   return e;   }  }  return null;  }   function showPrvImg(src) {  var img = document.createElement("img");  img.src = src;  prvbox.appendChild(img);  } } 

之后就是后台得到

@RequestMapping(params = "method=addCircle") public String addCircle(HttpServletResponse response,HttpServletRequest request) throws IOException {  request.setCharacterEncoding("utf-8");  response.setContentType("text/html;charset=utf-8");    String path = request.getSession().getServletContext().getRealPath(   "/BackstageShoppingWebsite/images/addCircleimage");//保存的服务器地址    Map<String, String> map = Upload   .upload(request, 1024 * 1024 * 10, path);    String file= map.get("file"); // 名称  String image = map.get("type"); // 图像  String newFile = map.get("newFile");// 地址   return null;  } 

好了现在重点就是看Upload 这个类了 这个类基本是封装好了的,需要 加的东西可以自己取看看然后修改,然后这个类用的是cos.jar包

package com.web.weixin.bean; import java.io.File; import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest;  import com.oreilly.servlet.multipart.FilePart; import com.oreilly.servlet.multipart.MultipartParser; import com.oreilly.servlet.multipart.ParamPart; import com.oreilly.servlet.multipart.Part;   public class Upload {   public static Map<String, String> upload(HttpServletRequest request,   int maxSize, String path) {    //以map形式保存数据 key对应保存的是获取界面上的name名称 value保存的是获取界面上的name对应的值  Map<String, String> map = new HashMap<String, String>();  Part part = null;  try {   MultipartParser mrequest = new MultipartParser(request, maxSize);   mrequest.setEncoding("utf-8");   //遍历所有的part组   while ((part = mrequest.readNextPart()) != null) {   if (part.isFile()) { //判断是否是文件     FilePart filepart = (FilePart) part;//转化成文件组     String fileName = filepart.getFileName();//得到文件名     if (fileName != null && fileName.length() > 0) {    // 取得扩展名    String fileExtName = 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")) {          /*String newFileName = new Date().getTime() + "."+ fileExtName;    //重新改文件名 文件名+扩展名 */            String newFileName =new Date().getTime() +fileName;//不改图片名字         String newPath = path + "/" + newFileName; //文件处理文件上传的路径     File newFile = new File(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; // 说明没有选择上传图片    }    } else if (part.isParam()) { //判断是否是参数    ParamPart paramPart = (ParamPart) part;    map.put(paramPart.getName(), paramPart.getStringValue());    }   }   } catch (IOException e) {   e.printStackTrace();  }  return map;  }  } 

cos.jar包下载,点击打开链接

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表