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上传图片到服务器的更多相关文章

  1. JSP+java上传图片到服务器,并将地址保存至MYSQL + JSP网页显示服务器的图片

    这两天遇到个需求——用户头像修改功能. 查了好多资料,不是代码不全,就是某些高端框架,卡了好久,今已实现,分享给大家,如果有更好的方法,非常感谢可以在下方评论区写出 一.整体项目架构 二.web.xm ...

  2. java后台中处理图片辅助类汇总(上传图片到服务器,从服务器下载图片保存到本地,缩放图片,copy图片,往图片添加水印图片或者文字,生成二维码,删除图片等)

    最近工作中处理小程序宝箱活动,需要java画海报,所以把这块都快百度遍了,记录一下处理的方法,百度博客上面也有不少坑! 获取本地图片路径: String bgPath = Thread.current ...

  3. React+ajax+java 上传图片并预览

    之前有在网上找ajax上传图片的资料,大部分的人写得都是用jQuery,但是在这里用JQuery就大才小用了,所以我就自己写了,先上图. 由上图,首先点击上面的选择文件,在选择图片之后,将会自动上传图 ...

  4. Android 上传图片到服务器 okhttp一

    [目录] (一)上传图片到服务器一 ---------------------------------Android代码 (二)上传图片到服务器二--------------------------- ...

  5. Java获取Web服务器文件

    Java获取Web服务器文件 如果获取的是服务器上某个目录下的有关文件,就相对比较容易,可以设定死绝对目录,但是如果不能设定死绝对目录,也不确定web服务器的安装目录,可以考虑如下两种方式: 方法一: ...

  6. 一个java页游服务器框架

    一.前言 此游戏服务器架构是一个单服的形式,也就是说所有游戏逻辑在一个工程里,没有区分登陆服务器.战斗服务器.世界服务器等.此架构已成功应用在了多款页游服务器 .在此框架中没有实现相关业务逻辑,只有简 ...

  7. 通过android 客户端上传图片到服务器

    昨天,(在我的上一篇博客中)写了通过浏览器上传图片到服务器(php),今天将这个功能付诸实践.(还完善了服务端的代码) 不试不知道,原来通过android 向服务端发送图片还真是挺麻烦的一件事. 上传 ...

  8. Wcf for wp8 上传图片到服务器,将图片名字插入数据库字段(五)

    环境:.NET Framework 3.5 服务: IIS EXpress托管 WCF服务程序 配置:Web.config <!--<connectionStrings> <a ...

  9. Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解

    Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...

随机推荐

  1. Java Thread Local – How to use and code sample(转)

    转载自:https://veerasundar.com/blog/2010/11/java-thread-local-how-to-use-and-code-sample/ Thread Local ...

  2. prometheus数据格式

    注意区分以下两种“数据格式”: 1.自定义exporter的时候所需要遵循的给prometheus提供数据的数据格式: https://yunlzheng.gitbook.io/prometheus- ...

  3. 原生Js封装的动画类

    算法用的是Tween类,需要研究的参考这篇文章: http://www.cnblogs.com/cloudgamer/archive/2009/01/06/Tween.html 网页里常用的动画 放大 ...

  4. RabbitMQ官方教程四 Routing(GOLANG语言实现)

    在上一教程中,我们构建了一个简单的日志记录系统. 我们能够向许多消费者广播日志消息. 在本教程中,我们将向其中添加功能-我们将使仅订阅消息的子集成为可能. 例如,我们将只能将严重错误消息定向到日志文件 ...

  5. SpringBoot里自定义banner

    国外有一个专门用来生成banner的网址:http://patorjk.com/software/taag ,打开这个网址,生成你想要的字儿. 生成时,我们可以选择自己喜欢的字体等信息. 完成后,选择 ...

  6. vue引入iconfont报错

    参考链接:https://blog.csdn.net/weixin_37215881/article/details/89237213

  7. burpsuite破解网页密码

    1.暴力破解网页登录 http://jingyan.baidu.com/article/200957619c8739cb0721b4ff.html https://zhuanlan.zhihu.com ...

  8. MFC无法使用CDialogEx类

    在stdafx.h中添加以下代码: #include <afxcontrolbars.h>

  9. JVM(三) 对象的创建过程

    1.对象的创建过程 1.1 . 给对象分配内存 对象的内存分配有两种方式,一种是指针碰撞另外一种是空闲列表的方式,堆是否规整由我们垃圾回收器来决定的 ,如果垃圾回收带有我们的压缩算法,那么他会规整的分 ...

  10. 伸缩布局 Flex

    其中在webkit内核的浏览器中使用时,必须加上-webkit-前缀,采用Flex布局的元素,称为Flex容器(flex container),简称”容器”.它的所有子元素自动成为容器成员,称为Fle ...