结合springmvc,使用ajax上传base64图片数据
来源:互联网 发布:淘宝上怎么买汽枪 编辑:程序博客网 时间:2024/05/17 04:49
一、前端:
<input type="file" id="myImage" name="myImage"/>
<script type="text/javascript"> $("#myImage").bind("change",function(){ uploadFile($(this)); }); //通过onChange直接获取base64数据q function uploadFile(file){ var f = file.files[0]; var reader = new FileReader(); reader.onload = function(){ var data = e.target.result; if (data.lastIndexOf('data:base64') != -1) { data = data.replace('data:base64', 'data:image/jpeg;base64'); } else if (data.lastIndexOf('data:,') != -1) { data = data.replace('data:,', 'data:image/jpeg;base64,'); } if(isCanvasSupported()){ }else{ alert("您的浏览器不支持"); } }; reader.onerror = function(){ console.log("上传失败了 "); } reader.readAsDataURL(f); } //ajax异步上传 function ajaxUploadBase64File(base64Data){ var url = window.location.protocol + '//' + window.location.host + "/register/uploadBase64"; $.ajax({ url:url, type:"post", data:{base64Data:base64Data}, dataType:"json", success:function(data){ if(data.success == true){ console.log("上传成功"); }else{ console.log("上传失败"); } }, error:function(){ console.log("上传失败"); } }); }; //是否支持canvas function isCanvasSupported(){ var elem = document.createElement('canvas'); return !!(elem.getContext && elem.getContext('2d')); };</script>
二、后台:
@RequestMapping(value="/uploadBase64",method=RequestMethod.POST) @ResponseBody public ActionResult<Map<String,String>> base64UpLoad(@RequestParam String base64Data, HttpServletRequest request, HttpServletResponse response){ ActionResult<Map<String,String>> result = new ActionResult<Map<String,String>>(); try{ logger.debug("上传文件的数据:"+base64Data); String dataPrix = ""; String data = ""; logger.debug("对数据进行判断"); if(base64Data == null || "".equals(base64Data)){ throw new Exception("上传失败,上传图片数据为空"); }else{ String [] d = base64Data.split("base64,"); if(d != null && d.length == 2){ dataPrix = d[0]; data = d[1]; }else{ throw new Exception("上传失败,数据不合法"); } } logger.debug("对数据进行解析,获取文件名和流数据"); String suffix = ""; if("data:image/jpeg;".equalsIgnoreCase(dataPrix)){//data:image/jpeg;base64,base64编码的jpeg图片数据 suffix = ".jpg"; } else if("data:image/x-icon;".equalsIgnoreCase(dataPrix)){//data:image/x-icon;base64,base64编码的icon图片数据 suffix = ".ico"; } else if("data:image/gif;".equalsIgnoreCase(dataPrix)){//data:image/gif;base64,base64编码的gif图片数据 suffix = ".gif"; } else if("data:image/png;".equalsIgnoreCase(dataPrix)){//data:image/png;base64,base64编码的png图片数据 suffix = ".png"; }else{ throw new Exception("上传图片格式不合法"); } String tempFileName = getRandomFileName() + suffix; logger.debug("生成文件名为:"+tempFileName); //因为BASE64Decoder的jar问题,此处使用spring框架提供的工具包 byte[] bs = Base64Utils.decodeFromString(data); try{ //使用apache提供的工具类操作流 FileUtils.writeByteArrayToFile(new File(Global.getConfig(UPLOAD_FILE_PAHT), tempFileName), bs); }catch(Exception ee){ throw new Exception("上传失败,写入文件失败,"+ee.getMessage()); } Map<String,String> map =new HashMap<String,String>(); map.put("tempFileName", tempFileName); result.setResultMessage("上传成功"); result.setData(map); logger.debug("上传成功"); }catch (Exception e) { logger.debug("上传失败,"+e.getMessage()); result.setSuccess(false); result.setResultMessage("上传失败,"+e.getMessage()); } return result; }
参考:
Base64编码与图片互转、
JAVA 把base64图片数据转为本地图片、
如何把图片转换成base64在后台转换成图片放在本地
0 0
- 结合springmvc,使用ajax上传base64图片数据
- 结合springmvc,使用ajax上传base64图片数据
- 结合springmvc,使用ajax上传base64图片数据
- 图片使用base64图片数据格式上传(后台使用springMVC)
- springmvc结合base64存取图片到mysql
- springmvc结合base64存取图片到mysql
- KingEditor结合SpringMVC上传图片
- Ckeditor结合springmvc的使用、配置、上传图片、分页
- Android Base64上传图片到 SpringMVC服务器
- Android Base64上传图片到 SpringMVC服务器
- 通过图片地址,将图片处理成base64,使用ajax上传图片
- springmvc下使用formdata异步ajax上传图片
- laravel结合七牛实现base64的图片上传
- ajax传数据和图片(base64格式)
- SpringMvc(Base64解密)上传
- 使用base64进行移动端图片上传
- 使用Base64上传图片到服务器
- 在Android中使用Base64上传图片
- 权限查询-CCF往届题(结果:90分,超时)
- redis 持久
- Java中的多线程你只要看这一篇就够了
- 技术人生开始
- 极小极大搜索方法、负值最大算法和Alpha-Beta搜索方法
- 结合springmvc,使用ajax上传base64图片数据
- LeetCode(97) Interleaving String(动态规划)
- oj-15-H-判断是否为回文数
- 团队合作
- Linux学习总结(八)——线程
- model模态框
- 深入理解Java(一):注解(Annotation)基本概念
- SSM框架重构达内NETCTOSS项目——(5)资费列表
- php搭建mvc框架四(加载控制器)