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