Java上传图片到服务器
HTML页面的标签
<div id="div_selectpic" align="right" style="width: 300px;font-size: 15px;">
(格式jpg、bmp、png大小100K内)选择图片
<input name="txtfiles" type="text" id="txtfiles" style="display: none">
<input type="file" name="file_pic" id="file_pic" onchange="DynamicPicStr(this,100,'imgid','txtfiles',290,190)" style="width: 70px;" class="easyui-linkbutton">
</div>
<div>
<img id="imgid" alt=""/>
</div>
上传照片的js方法
//新增时图片上传调用,uploadobj:页面传入的文件对象,limitfilessize:限定文件的大小
function DynamicPicStr(uploadobj, limitfilesize, divid, txtid, width, height) {
var files = uploadobj.files[0];
var oFReader = new FileReader();
oFReader.readAsDataURL(files);
var strurl="";//图片物理地址
var txtobj = $("#"+txtid+"");
var objdivimg = $("#"+divid+""); var limitpictype = ["jpg", "bmp", "png"];
try {
//console.info("图片大小:"+files.size);
if (parseInt(files.size / 1024) > limitfilesize) {
alert("图片大小超过规定大小,只能小于" + limitfilesize + "K");
txtobj.value = "";
return false;
}
var filename = files.name;
if (filename != "" && filename != null) {
var searchindex = filename.indexOf(".");
var filetypename = filename.substring(searchindex + 1, filename.length);
var pictypebool = false;
for (var i = 0; i < limitpictype.length; i++) {
if (limitpictype[i].toLowerCase() == filetypename.toLowerCase()) {
pictypebool = true;
break;
}
}
if (!pictypebool) {
alert("图片类型不符合要求,图片类型只能是jpg , bmp , png");
txtobj.value = "";
return false;
}
}
}
catch (e) {
alert(e.name + ": " + e.message + ",判断图片类型、图片大小失败");
} oFReader.onloadend = function(oFRevent) {
strurl = oFRevent.target.result;
objdivimg.attr("src",strurl);
txtobj.val(files);
}
//objdivimg.attr("src",oFReader.result);
txtobj.val(files); console.info("图:"+strurl);
objdivimg.attr("width",width);
objdivimg.attr("height", height);
upload(uploadobj);
}
//文件上传的方法
function upload(file) {
//let img = document.getElementById('img')
let formData = new FormData()
let temp = file.files[0]
var strurl = getContextPathInfo() + "/LowZjblb/upload";
if(temp) {
formData.append('file', temp)
//img.src = window.URL.createObjectURL(temp)
$.ajax({
url: strurl,
type: "POST",
data: formData,
processData: false, // 告诉jQuery不要去处理发送的数据
contentType: false, // 告诉jQuery不要去设置Content-Type请求头
success: function(result) {
$("#newzjzp").val(result.appenddata);//服务器保存的路径
//alert(result);
}
})
}
}
java后端Controller接收的方法
/**
*
* @Title:图片上传返回路径
* @Description
* @param MultipartFile,request
* @return 服务器保存的图片地址url
* @throws
*/
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
@Log(module = "法证补领管理", operation = "添加")
public OperationResult upload(@RequestParam("file") MultipartFile files,HttpServletRequest request) {
OperationResult result = new OperationResult(OperationResultTypeEnum.ERROR, "增加记录失败");
String dicName="UpFile";//服务器上传文件夹名称
String newFileName=files.getOriginalFilename();
newFileName=newFileName.substring(0,newFileName.lastIndexOf("."));
String picurl = UploadFile.saveFile(files,newFileName,dicName, request);
result.setResulttype(OperationResultTypeEnum.SUCCESS);
result.setMsg("上传成功");
result.setAppenddata(picurl);
return result;
}
java后端负责保存图片的方法如下
public static String saveFile(MultipartFile filedata,String newFileName,String dicName, HttpServletRequest request) {
// TODO Auto-generated method stub
String pathval = request.getSession().getServletContext().getRealPath("/");
// 根据配置文件获取服务器图片存放路径
//String newFileName = String.valueOf(System.currentTimeMillis());
Calendar cale = null;
cale = Calendar.getInstance();
String year = String.valueOf(cale.get(Calendar.YEAR));
String month = String.valueOf(cale.get(Calendar.MONTH) + 1);
String saveFilePath = "UpFile/"+dicName+"/"+year+"/"+month+"/";
/* 构建文件目录 */
File fileDir = new File(pathval + saveFilePath);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
// 上传的文件名
String filename = filedata.getOriginalFilename();
// 文件的扩张名
String extensionName = filename.substring(filename.lastIndexOf(".") + 1);
try {
String imgPath = saveFilePath + newFileName + "." + extensionName;
// System.out.println(pathval + imgPath);打印图片位置
FileOutputStream out = new FileOutputStream(pathval + imgPath);
// 写入文件
out.write(filedata.getBytes());
out.flush();
out.close();
return imgPath;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Java上传图片到服务器的更多相关文章
- JSP+java上传图片到服务器,并将地址保存至MYSQL + JSP网页显示服务器的图片
这两天遇到个需求——用户头像修改功能. 查了好多资料,不是代码不全,就是某些高端框架,卡了好久,今已实现,分享给大家,如果有更好的方法,非常感谢可以在下方评论区写出 一.整体项目架构 二.web.xm ...
- java后台中处理图片辅助类汇总(上传图片到服务器,从服务器下载图片保存到本地,缩放图片,copy图片,往图片添加水印图片或者文字,生成二维码,删除图片等)
最近工作中处理小程序宝箱活动,需要java画海报,所以把这块都快百度遍了,记录一下处理的方法,百度博客上面也有不少坑! 获取本地图片路径: String bgPath = Thread.current ...
- React+ajax+java 上传图片并预览
之前有在网上找ajax上传图片的资料,大部分的人写得都是用jQuery,但是在这里用JQuery就大才小用了,所以我就自己写了,先上图. 由上图,首先点击上面的选择文件,在选择图片之后,将会自动上传图 ...
- Android 上传图片到服务器 okhttp一
[目录] (一)上传图片到服务器一 ---------------------------------Android代码 (二)上传图片到服务器二--------------------------- ...
- Java获取Web服务器文件
Java获取Web服务器文件 如果获取的是服务器上某个目录下的有关文件,就相对比较容易,可以设定死绝对目录,但是如果不能设定死绝对目录,也不确定web服务器的安装目录,可以考虑如下两种方式: 方法一: ...
- 一个java页游服务器框架
一.前言 此游戏服务器架构是一个单服的形式,也就是说所有游戏逻辑在一个工程里,没有区分登陆服务器.战斗服务器.世界服务器等.此架构已成功应用在了多款页游服务器 .在此框架中没有实现相关业务逻辑,只有简 ...
- 通过android 客户端上传图片到服务器
昨天,(在我的上一篇博客中)写了通过浏览器上传图片到服务器(php),今天将这个功能付诸实践.(还完善了服务端的代码) 不试不知道,原来通过android 向服务端发送图片还真是挺麻烦的一件事. 上传 ...
- Wcf for wp8 上传图片到服务器,将图片名字插入数据库字段(五)
环境:.NET Framework 3.5 服务: IIS EXpress托管 WCF服务程序 配置:Web.config <!--<connectionStrings> <a ...
- Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解
Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...
随机推荐
- django 自定义 密码加密方式 及自定义验证方式
在django1.6中,默认的加密方式是pbkdf_sha256,具体算法不表,一直以来用django的自带用户验证都十分顺手,但如果需要修改默认加密方式为md5,具体方法为: 在settings.p ...
- Spring MVC 验证表单
在实际工作中,得到数据后的第一步就是检验数据的正确性,如果存在录入上的问题,一般会通过注解校验,发现错误后返回给用户,但是对于一些逻辑上的错误,比如购买金额=购买数量×单价,这样的规则就很难使用注 ...
- CentOS6安装MySQL开启远程登录
Centos6安装MySQL 检测下系统有没有自带的mysql:yum list installed | grep mysql 如果已经有的话执行命令 yum -y remove mysql-libs ...
- 17、vue-cli3 js项目中引入ts混用(typeScript)
说明: vue3.0搭建的项目,不过没有引入ts,后来需要用到一个插件是用ts写的,所以vue要用到ts... 一.安装typescript及loader npm install typescript ...
- ubuntu下把python脚本转为二进制字节码文件
ubuntu下把python脚本转为二进制字节码文件 听语音 原创 | 浏览:354 | 更新:2017-12-22 14:48 1 2 3 4 5 6 7 分步阅读 自己拥有个几个python脚本文 ...
- matlab绘制直方图的方法
直接上代码,利用hist绘制频次直方图和频率直方图... %rand Fs=1000;N=10000; t=0:1/Fs:(N-1)/Fs; X1=rand(1,length(t)); subplot ...
- NET中各种加密解密方法
/// <summary> /// AES对称加密和分组加密中的四种模式(ECB.CBC.CFB.OFB),这三种的区别,主要来自于密钥的长度,16位密钥=128位,24位密钥=192位, ...
- GWAS中的名称概念
基因: 是指决定生物某一遗传性状的染色体DNA片段 基因型: `基因型`又称`遗传型`,是某一生物个体全部基因组合的总称.它反应生物体的遗传构成,即从双亲获得的全部基因的总和.遗传学中具体使用的基因型 ...
- views 视图层
Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...
- java jri null
java通过jri调用r文件,r文件必须和当前类在同一目录下,然后才能re.eval("source(fpath)")执行脚本;其中fpath为通过re.assign设置的文件全路 ...