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. 基于Python的WEB接口开发与自动化测试 pdf(内含书签)

    基于Python的WEB接口开发与自动化测试 目录 目 录O V目 录章 Python 学习必知 ................................................... ...

  2. linux本地检测tomcat是否启动成功

    @参考文章 原文如下: linux本地检测如何tomcat是否启动成功? 解决方法: 1.curl 127.0.0.1:8080 第一可以知道本地是否可以访问tomcat,返回页面代码 2.tail ...

  3. linux信号量例子

    semaphore.h 提供的是 POSIX 标准定义的 semaphore 接口,而 sys/sem.h 里 提供的是符合 System V 标准的 semaphore接口 (semget, sem ...

  4. Java连接MongoDB报错“java.lang.IllegalArgumentException: clusterListener can not be null”的解决办法

    我使用的MongoDB版本是3.6.9. 下面是一个很基础的示例代码,功能就是连接MongoDB: package com.zifeiy.snowflake.handle.etl.mongodb; i ...

  5. 亲爱的mssql码农们,看看利用sp_addlinkedserver实现远程数据库链接

    亲爱的mssql码农们,可以看看本地连接远程的数据库方式(sp_addlinkedserver)--通过代码连接 --查看当前链接情况: select * from sys.servers; --使用 ...

  6. 【ARTS】01_47_左耳听风-201900930~201901006

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  7. VueX(vue状态管理)简单小实例

    VueX:状态管理 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 核心模块:State. ...

  8. django自带的用户验证是验证username和password,如何自定义验证功能,让mobil也能作为账户名登录?

    users.views.pyfrom django.contrib.auth.backends import ModelBackendfrom django.db.models import Qcla ...

  9. CentOS7 Python3下安装 TensorToolbox 1.0.22时的一些错误及解决办法

    CentOS7 Python3下安装 TensorToolbox 1.0.22 (python3) [jiangshan@localhost ~]$ pip install TensorToolbox ...

  10. 022 Android .9图片的含义及制作教程

    1.图片(.9.png格式)的概念 (1)9patch图片是andriod app开发里一种特殊的图片形式,文件的扩展名为:.9.png (2)9patch图片的作用就是在图片拉伸的时候保证其不会失真 ...