起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6133|回复: 7

[结贴] 想把canvas变成图片保存到手机

[复制链接]

86

主题

338

帖子

879

积分

高级会员

Rank: 4

积分
879
QQ
发表于 2020-11-2 19:54:40 | 显示全部楼层 |阅读模式
本帖最后由 Bex5wenti 于 2020-11-3 12:48 编辑

cordova插件有实现这个功能的吗,顺带一提,前端js那边使用
html2canvas($(".test")).then(function (canvas) {
    var imgUri = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
    window.location.href = imgUri;
}这个只有浏览器打开的时候才会下载,真机模拟时点击之后没反应。
我后台用File w2 = new File(\\storage\\emulated\\0\\DCIM\\test.png); 保存路径示我网络路径不正确
或者是有没有什么方法能指定保存某一个.w页面作为图片保存到手机中?


86

主题

338

帖子

879

积分

高级会员

Rank: 4

积分
879
QQ
 楼主| 发表于 2020-11-3 15:32:35 | 显示全部楼层
比如说,浏览器上会出现这个弹框,然后就看到下载到电脑的我的文档下的Downloads文件夹,但是真机调试的时候是没反应的
二维码.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2020-11-3 18:49:59 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

86

主题

338

帖子

879

积分

高级会员

Rank: 4

积分
879
QQ
 楼主| 发表于 2020-11-4 10:03:55 | 显示全部楼层
本帖最后由 Bex5wenti 于 2020-11-4 10:58 编辑

按照http://bbs.wex5.com/forum.php?mod=viewthread&tid=88234 的方法已经成功下载到本地了,只是不会在相册显示出来。
而且有时候会触发Caused by: java.net.SocketException: Connection reset by peer: socket write error这个错误

java.lang.RuntimeException: ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error
at org.nutz.lang.Lang.wrapThrow(Lang.java:187)
at org.nutz.lang.Streams.writeAndClose(Streams.java:165)
at org.nutz.mvc.view.RawView.render(RawView.java:184)
at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at com.laicaikabao.tool.LogTimeProcessor.process(LogTimeProcessor.java:23)
at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:67)
at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)
Caused by: ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:369)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:339)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
at org.nutz.lang.Streams.write(Streams.java:135)
at org.nutz.lang.Streams.write(Streams.java:107)
at org.nutz.lang.Streams.writeAndClose(Streams.java:162)
... 35 more
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:761)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:448)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:363)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:785)
at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:598)
at org.apache.coyote.Response.doWrite(Response.java:533)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:364)
... 42 more


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2020-11-4 13:40:43 | 显示全部楼层
这个错误应该不影响使用
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

86

主题

338

帖子

879

积分

高级会员

Rank: 4

积分
879
QQ
 楼主| 发表于 2020-11-4 14:23:20 | 显示全部楼层
本帖最后由 Bex5wenti 于 2020-11-4 14:56 编辑
jishuang 发表于 2020-11-4 13:40
这个错误应该不影响使用

还有个问题就是,我下载的图片不管保存到哪个路径,手机图库都是不显示的,这个有js或者java上的办法吗?目前只针对安卓
而且,我在文件夹中如果多选了下载的这些图片想要分享到微信,会提示我:分享失败,多文件分享仅支持照片格式,是不是我的图片下载格式不对?
html2canvas($(".test")).then(function (canvas) {
   var imgUri = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); // 获取生成的图片的url
   var filePath = 'file:///storage/emulated/0/DCIM/Camera/test.png'; //下载路径,数据库保存文件名
   var uri = encodeURI(imgUri); //下载地址

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2020-11-4 14:37:43 | 显示全部楼层
可以到网上查找是否有处理方案,这个应该需要cordova插件处理
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

86

主题

338

帖子

879

积分

高级会员

Rank: 4

积分
879
QQ
 楼主| 发表于 2020-11-5 16:20:06 | 显示全部楼层
jishuang 发表于 2020-11-4 14:37
可以到网上查找是否有处理方案,这个应该需要cordova插件处理

可以结贴了,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-25 03:25 , Processed in 0.096549 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表