打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
html5 保存图片到服务器本地

1 js获取canvas base64(所需格式)图片数据

  1. var imgData= mycanvas.toDataURL("image/png");  
  2.   
  3.  如果要提供给用户下载用  
  4.  window.location.href=imgData ;  

2 js将数据通过hidden类型input传给jsp处理

  1. index.html  
  2. <html>  
  3. <head>  
  4. <scriptlanguagescriptlanguage="javascript">    
  5. function renum(){      
  6. document.getElementById("hp").value= "abc";      
  7. document.forms.myForm.submit();  
  8. }  
  9. </script>  
  10. </head>  
  11. <body>  
  12.    
  13. <formnameformname="myForm" method ="post" action = "t.jsp">  
  14. <tablebordertableborder="1">  
  15. <tr><td><inputtypeinputtype=hidden name="fuck" value=""id=hp></td></tr>  
  16. <tr><td><inputtypeinputtype="button" value="gogo"onclick="renum()"></td></tr>  
  17. </table>  
  18. </form>  
  19. </body>  
  20. </html>  
  21.   
  22. t.jsp  
  23. <%@ pagecontentType="text/html;charset=gb2312"%>  
  24. <%  
  25. String sDate =(String)request.getParameter("fuck");  
  26. out.println("comeon--->"+sDate);  
  27. %>  

微信本身浏览器不支持form表单提交,被sb腾讯阉割了
可以用如下替代方案get在传输数据量上有问题,IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持,微信浏览器大概也在2k左右,粗略算了下png图片大概能传30*30-40*40之间,跟没有差不多吧,蛋疼

[javascript] view plaincopy
  1. var mycanvas = document.getElementById("canvas");  
  2. var imaged    = mycanvas.toDataURL("image/png");  
  3. var url = "http://192.168.1.103:8080/html5Paint/html5/t.jsp?hid="+imaged;  
  4. window.open(url)  


关于微信浏览器可以使用另外的方法,不在页面中写form直接用js实现post

[javascript] view plaincopy
  1. function post(URL, PARAMS) {        
  2.     var temp = document.createElement("form");        
  3.     temp.action = URL;        
  4.     temp.method = "post";        
  5.     temp.style.display = "none";        
  6.     for (var x in PARAMS) {        
  7.         var opt = document.createElement("textarea");        
  8.         opt.name = x;        
  9.         opt.value = PARAMS[x];        
  10.         // alert(opt.name)        
  11.         temp.appendChild(opt);        
  12.     }        
  13.     document.body.appendChild(temp);        
  14.     temp.submit();        
  15.     return temp;        
  16. }        
  17.        
  18. //调用方法 如        
  19. post('pages/statisticsJsp/excel.action', {html :prnhtml,cm1:'sdsddsd',cm2:'haha'});  

这样就可以在微信页面中使用post无限制传数据了


3 jsp中使用java解码base64,并生成相应格式的图片文件

特殊说明:canvas生成的数据格式如下"data:image/png;base64,iVBORw0KGg........."

需要把data:image/png;base64,截掉,后面的数据就可以直接转二进制并生成图片

sun.misc.BASE64Decoder找不到的问题,在工程配置中删除jre再重新引入jre就可解决


传不了代码,就传图



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
wireshark之文件还原
GET和POST的原理和区别
HTTP协议与HTML表单(再谈GET与POST的区别)
双重差分安慰剂检验代码
微信自带浏览器不支持form表单post提交方案解决
对PHP输入输出流学习和认识
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服