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 ...
随机推荐
- Flink 物理分区
本文来自官网: https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/operators/#physical-p ...
- 使用wkhtmltopdf将多个html批量转成pdf
相关工具:wkhtmltopdf 场景:比如笔者有 ognl中文文档,全部是html,现在想把它转成pdf,放到ipad阅读,文件如下: 下载好wkhtmltox(本地安装目录 D:\develop\ ...
- xps转换为pdf
https://www.cnblogs.com/zeoy/archive/2013/01/09/2852941.html https://blog.csdn.net/jafucong/article/ ...
- LODOP打印table表格宽度固定-超宽隐藏
之前有博文介绍关于超出div隐藏内容的:LODOP打印超过后隐藏内容样式里面提到了overflow:hidden;控制超出后隐藏,但是前面那篇用的是div,如果是在table中,由于table默认的t ...
- 【嵌入式硬件Esp32】(1)例程Hello World Example 注释
/* Hello World Example This example code is in the Public Domain (or CC0 licensed, at your option.) ...
- consui(二)集群配置
consul集群搭建:一.软件安装Linux 环境下载zip包然后直接解压,然后把解压的文mv consul /bin检验安装是否成功,查看版本[root@node1 ~]consul -vConsu ...
- 【VS开发】从sockaddr中取得客户端或者数据源的Ip地址和端口号
在socket编程中,服务器端accept()等待一个客户端的连接,当连接成功后,accept拷贝客户端的地址信息到sin_addr里面,我们如何从sin_addr取得此客户端的Ip地址和端口号呢? ...
- 6.2.3 reginst中的yzm
@RequestMapping("/reginst/{yzm}") public Object reginst(User user,@PathVariable String yzm ...
- HTTP权威指南-URL与资源
URL与资源 URL是URI的子集 方案(http),主机(www.baidu.com),路径(/home/logo.png) 方案,其实有很多,HTTP.HTTPS.FTP,SMTP等等. http ...
- Hue,Oozie运行sqoop找不到驱动解决办法
一.前言 平台:CDH 5.13.0 公司在客户那边有个项目需要部署cloudera平台,部署的时候,在这个版本的cdh中,除了基本组件,还选了sqoop2作为数据传输工具,希望能在Oozie中通过工 ...