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

网友投稿 648 2023-02-27


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

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

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

我是添加一张临时图片得到微信的media_id保存数据库!

enctype="multipart/form-data" method="post">

上传图片:

onchange="previewImage(this, 'prvid')" multiple="multiple">

预览图片js

functionQccWOjLKvl 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 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 upload(HttpServletRequest request,

int maxSize, String path) {

//以map形式保存数据 key对应保存的是获取界面上的name名称 value保存的是获取界面上的name对应的值

Map map = new HashMap();

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上传操作技巧汇总》,欢迎大家学习阅读。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现的可选择及拖拽图片的面板功能【基于swing组件】
下一篇:接口api文档工具(api接口文档示例)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~