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 ...
随机推荐
- [ kvm ] 学习笔记 6:virsh 命令及功能详解
1. 虚拟机管理操作 attach-device 从XML文件附加设备 attach-disk 附加磁盘设备 attach-interface 连接网络接口 autostart 自动启动一个域 blk ...
- JS中的match和test正则表达式验证密码或用户名的一种规则
match语法:字符串.match(正则表达式)有符合的:返回符合的数组无符合的:返回null test语法:正则表达式.test(字符串)有符合的:返回true无符合的 :返回false 该文的密码 ...
- css样式圆角和一定的透明度
css样式里可以用border-radius把div或图片变成带有一定圆角的,如果是div本身是正方形,设置圆角度是百分之五十,就是圆形. border-radius:值可以是具体的px数值,也可以是 ...
- 时空卷积网络TCN
1.写在前面 实验表明,RNN 在几乎所有的序列问题上都有良好表现,包括语音/文本识别.机器翻译.手写体识别.序列数据分析(预测)等. 在实际应用中,RNN 在内部设计上存在一个严重的问题:由于网络一 ...
- Linux习题1
1. GUN的含义是: GNU's Not UNIX . 2. Linux一般有3个主要部分:内核.命令解释层.实用工具. 3.POSIX是可携式操作系统接口的缩写,重点在规范核心与应用 ...
- 【VS开发】如何判断客户端SOCKET已经断开连接?
http://biancheng.dnbcw.info/linux/366100.html 最近在做一个服务器端程序,C/S结构.功能方面比较简单就是client端与server端建立连接,然后 ...
- 管道式编程(Pipeline Style programming)
受 F# 中的管道运算符和 C# 中的 LINQ 语法,管道式编程为 C# 提供了更加灵活性的功能性编程.通过使用 扩展函数 可以将多个功能连接起来构建成一个管道. 前言 在 C# 编程中,管道式编程 ...
- 一次性清除页面上的所有setInterval
参考链接:https://www.cnblogs.com/liujinyu/p/3668575.html
- tornodo学习之路
tornodo的ioloop是什么?(A) A.事件循环 B.对象循环 C.没有对象不用循环 别人是否可以分析放在本地的cookie?(B) A.否 B.是 WSGI是什么?(A) A.web服务器网 ...
- Java多线程概念及优缺点,多线程的地位|乐字节
大家好,乐字节小乐有来咯,上次说完了Java网络编程探究|乐字节,这次我们来看看线程相关的吧. Java线程主要讲述的内容有: 1.线程概念 多线程,说白了就是多条执行路径,原来是一条路径,就主路径( ...