欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-18 12:09:52
这里我记录一个比较简单方便操作的java上传文件图片到服务器并且保存,具体内容如下 首先是页面html的   我这是提交一个文件和类型...

这里我记录一个比较简单方便操作的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包下载,

本文已被整理到了《java上传操作技巧汇总》,欢迎大家学习阅读。

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

上一篇:

下一篇: