java实现粘贴图片上传
jsp页面
<!-- 创建一个div粘贴图片 -->
<div class="form-group"><label class="col-md-1 control-label" for="textarea-input">图标:</label><div id="pasteShapeIcon" contenteditable="true"style="width: 400px; height: 300px; border: dashed; margin: 3% 9.2% -0.5%">在此框中粘贴图片</div></div>
<script>//点击div框中内容清除$("#pasteShapeIcon").click(function(){ $("#pasteShapeIcon").empty();});//粘贴图片//var pasteShapeIcon=document.getElementById("pasteShapeIcon");var pasteShapeIcon=$("#pasteShapeIcon")[0];pasteShapeIcon.addEventListener("paste", function(event){var clipboardData = event.clipboardData;var file, reader;Array.prototype.forEach.call(clipboardData.types, function(type, i){var item = clipboardData.items[i];var imageType = /image\/(png|jpg|webp|gif|bmp)/i;//console.log(type, item.type, 'type');if(type.match(imageType) || item.type.match(imageType)){file = item.getAsFile();reader = new FileReader();reader.onload = function(evt){/* console.log('result: ', evt, evt.target, evt.target.result); */var image = new Image();image.src = evt.target.result; $.ajax({ //将图片url传到controller进行处理 url : "${ctx}/admin/handgesture/uploadShapeIcon.json",type : "post",cache : false,dataType:"text",/* async:false ajax按顺序执行fangfa */ async:false, data :{'shapeIconPaste':image.src,'code':$("#code").val()},success : function(url) {//将返回的图片存储地址赋在页面input中,随form表单传到后台保存$("#shapeIconPaste").val(url);}}); pasteShapeIcon.appendChild(image);};reader.readAsDataURL(file);}});}, false);
//controller
工具类
package com.shiro.entity;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;import sun.misc.BASE64Decoder;public class FileUploadUtil {public static String UPLOAD_DIR="upload";public static final String BASE_DIR=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getSession().getServletContext().getRealPath("/")+UPLOAD_DIR;public static final String RL_DIR=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getContextPath();public static final String UPLOAD_PIC_FILE_DIR = BASE_DIR + File.separator+"backpic";public static final String UPLOAD_APP_FILE_DIR = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getSession().getServletContext().getRealPath("/")+"app"; public static final String UPLOAD_USER_FILE_DIR = BASE_DIR + File.separator+"hand";public static final String UPLOAD_ADS_FILE_DIR = BASE_DIR + File.separator+"sysads";public static final String UPLOAD_EXCEL_FILE_DIR = BASE_DIR + File.separator+"excel";public static final String UPLOAD_OTA_FILE_DIR = BASE_DIR + File.separator+"ota";public static Log log = LogFactory.getLog(FileUploadUtil.class);//base64字符串转化成图片 public static String GenerateImage(String imgStr,String absolutePath,String code) { File dirs = new File(absolutePath);dirs.mkdirs();//截取图片后缀名String extName=imgStr.substring(11, 14);String fileName=code+"_"+System.currentTimeMillis()+"."+extName; //对字节数组字符串进行Base64解码并生成图片 if (imgStr == null) //图像数据为空 return null; BASE64Decoder decoder = new BASE64Decoder();//得到的base64 字符串为截掉,之前的内容String[] imgurl=imgStr.split(",");try { File saveFile = new File(absolutePath,fileName);if(!saveFile.exists()){saveFile.createNewFile();}//Base64解码 byte[] b = decoder.decodeBuffer(imgurl[1]); //生成jpeg图片 // String imgFilePath = saveFile.getPath();//新生成的图片 OutputStream out = new FileOutputStream(saveFile); out.write(b); out.flush(); out.close(); log.info("Upload success :"+saveFile.getAbsolutePath());String dl=File.separator+UPLOAD_DIR+absolutePath.split(UPLOAD_DIR)[1];return joinPath(new String[]{dl,fileName}); } catch (Exception e) { e.printStackTrace(); }return null; } public static String joinPath(String[] subPaths){return StringUtils.join(subPaths,File.separator);}
}
controller ajax处理的base64 url,返回存储的图片地址
@ResponseBody@RequestMapping(value = "/uploadShapeIcon.json")public String uploadShapeIcon(HttpServletResponse response, @RequestParam String shapeIconPaste, @RequestParam String code,Model model,HttpServletRequest request){String url="";response.setCharacterEncoding("UTF-8"); try { //获取粘贴板图片 String absolutePath = FileUploadUtil.joinPath(new String[] { FileUploadUtil.UPLOAD_USER_FILE_DIR});url=FileUploadUtil.GenerateImage(shapeIconPaste, absolutePath, code); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return url; }
java实现粘贴图片上传相关推荐
- java分布式实现图片上传到图片服务器
java分布式实现图片上传到图片服务器 操作步骤 第一步 第二步 第三步 第四步 第五步 第六步 代码实现 第七步 JS代码 大功告成!! 操作步骤 第一步 在页面中的form表单里面增加一个inpu ...
- quill富文本编辑器quill粘贴图片上传服务器
强大的富文本编辑器:quill github:32k start++,:https://github.com/quilljs/quill quill粘贴图片上传服务器 <link href=&q ...
- Quill富文本 图片上传服务器、复制粘贴图片上传
引入: import { ImageExtend, QuillWatch } from "quill-image-extend-module"; Quill.register(&q ...
- java ImageIO.write图片上传变色及背景变黑解决
java ImageIO.write图片上传变色及背景变黑解决 public void getImage(HttpServletRequest request, HttpServletResponse ...
- wangeditor编辑器复制粘贴图片上传
1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况 本文使用的后台是Java.前端为Jsp(前端都一样,后台如果语言不通得自己做 Base6 ...
- JAVA实现一个图片上传预览功能
这个小项目主要使用java实现了一个简单的图片上传预览功能,废话不多说,先上实现成果 ^ _ ^
- Java实现Nginx图片上传
简介 文件上传功能,是信息系统开发中的常用功能,在传统的开发流程中,前端通过表单上传文件,后端进行文件处理.不利之处在于 后端需要写重复代码,每开发一个包含上传功能的系统,就需要写一遍上传逻辑. 当文 ...
- 从剪切板粘贴图片上传
一个需求:让用户使用剪切板来粘贴图片(而不是将图片保存到本地,然后再选取文件上传) fakepath是什么鬼 今天做图片上传时发现,不论是什么路径上传的文件,路径都变成了这种格式 "C:\f ...
- java公众号图片上传_java微信公众号上传下载图片,springmvc demo
[实例简介] 微信上传下项目使用说明: 1.本项目适合学习springmvc学者(springmvc demo), url(http://localhost:8082/com.demo.weixin/ ...
最新文章
- vue 搜索框header_在Vue框架下使用Fullcalendar
- yarn RM crash问题一例
- iOS开发——多线程篇——GCD
- Linux(二) 常用命令和目录结构
- mvc 模式和mtc 模式的区别
- 您应该了解的 Windows Azure 网站在线工具
- 聚焦技术和实践,腾讯全面揭秘基础设施和大数据演进之路
- c 语言 strcmpy的实现
- C++ 解引用操作符重载
- FindFirstFile
- vue html导出为pdf(解决分页问题+模糊问题)
- PPC手机(WM5)Wifi和GPRS同时使用设置指南
- duilib开发(九):定时器和超链接
- 朱利亚 matlab分形图,【分形之美 02】分形图像怎么画?详解曼德勃罗朱利亚分形绘制方法...
- 免费稳定又好用的微信投票小程序,照片投票评选,视频投票打分小程序
- 2021年危险化学品生产单位安全生产管理人员新版试题及危险化学品生产单位安全生产管理人员找解析
- 往事如烟 - 老钟15
- [后缀自动机 模板题 || 字符串Hash] HDU 4622 Reincarnation
- 人生短暂,持之以恒地做一件事情就会成功
- java - (二)netty 心跳监测机制
热门文章
- php友情链接管理,PHP实现友情链接检测
- 华擎z390m-ITX/ac组NAS 安装PVE 7.1+ikuai+黑裙+Windows7(安装备忘录)一
- csp-s模拟测试54 - 55
- (转)清华“差生”10年奋斗经历
- java portlet,(Portal 开发读书笔记)Portlet和Servlet的异同
- leetcode-帕斯卡三角形
- java三种移位运算符
- 计算机组成原理中的MPY指令,8位算术逻辑运算
- 部分Oracle命令(随时更新)
- 公有云襄助中国企业出海如何更接地气?