软件编程
位置:首页>> 软件编程>> java编程>> Java上传文件图片到服务器的方法

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

作者:故事说到这里  发布时间:2022-12-06 01:40:46 

标签:Java,上传,服务器

这里我记录一个比较简单方便操作的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上传操作技巧汇总》,欢迎大家学习阅读。

来源:http://blog.csdn.net/qq_34469943/article/details/69945158

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com