Egret社区
10银子
本帖最后由 AirMonkeyStudio 于 2016-1-5 15:19 编辑

这两天研究了Egret中上传图片的方案,服务端使用nodeJS

使用需求:
在前端选择图片,
然后获得这个图片的base64数据,
然后上传给服务器,
服务器保存为图片

现在的现象:
在前端选择图片,通过
然后获得这个图片的base64数据,通过
然后上传给服务器,通过
服务器保存为图片,通过

原来的问题是:保存之后的图片提示损坏经过朋友们的帮助,问题解决了,解决方案如下




解决方案:
================================================
感谢  昱少弋,提供给我的方法,“把base64字符串拷贝到地址栏,查看图片是否正常“,这个方法真的很好用,
在用这个方法之后,经过比较文本内容,发现了//使用express接收POST值后,base64编码字符串中的“+”号被替换成空格, 需要给替换回去
这个得益于xsstomy提供给我的信息,感谢他帮我查找问题 他提供的https://cnodejs.org/topic/4f939c84407edba2143c12f7 中有关于express会替换base64内容中+号的描述

本帖中的后端代码目前可以工作了,关键之处就是被标红色的地方
附件中的响应代码位置也替换成红色的就可以了
================================================


前端
Egret 3.0.0
Wing 2.5.1
后端
node 0.10.28
express 3.5.3

附件是前后端代码,请帮助查看,后端代码分为3子包
前端 uploadImgBase64.zip (568.33 KB, 下载次数: 149)

最佳答案

查看完整内容

前台传递的base64和后端获取到的是一样的吗,好像可以把base64的字符串直接粘贴到浏览器地址栏上,看能不能出现正确的图片
分享到 :
8 人收藏

20 个回复

倒序浏览
昱少弋  登堂入室 | 2016-1-4 14:47:40

前台传递的base64和后端获取到的是一样的吗,好像可以把base64的字符串直接粘贴到浏览器地址栏上,看能不能出现正确的图片
xsstomy  渐入佳境 | 2016-1-4 17:41:03
本帖最后由 xsstomy 于 2016-1-4 17:53 编辑

这个看你描述的信息是服务端的问题,这个应该找nodejs论坛回答一下或者找nodejs高手回答一下。这里的nodejs会的用户,可能不多。帮你查询一下问题。https://cnodejs.org/topic/4f939c84407edba2143c12f7


AirMonkeyStudio  圆转纯熟 | 2016-1-4 19:22:17
xsstomy 发表于 2016-1-4 17:41
这个看你描述的信息是服务端的问题,这个应该找nodejs论坛回答一下或者找nodejs高手回答一下。这里的nodejs ...

十分感谢xsstomy的回复
我使用的代码和这段是类似的,我再研究研究,听你的建议,到node论坛也问问
AirMonkeyStudio  圆转纯熟 | 2016-1-4 20:22:55
xsstomy 发表于 2016-1-4 17:41
这个看你描述的信息是服务端的问题,这个应该找nodejs论坛回答一下或者找nodejs高手回答一下。这里的nodejs ...

使用这个 https://cnodejs.org/topic/4f939c84407edba2143c12f7 来测试之后,结果还是说文件损毁之类的,我之前看的一些资料也是差不多的处理,所以现在想能不能是Egret前端传过去的base64有问题,这个不知怎么确定?
xsstomy  渐入佳境 | 2016-1-4 20:57:50
AirMonkeyStudio 发表于 2016-1-4 20:22
使用这个 https://cnodejs.org/topic/4f939c84407edba2143c12f7 来测试之后,结果还是说文件损毁之类的, ...

那你看看输出,前后的base64是否是一致的
AirMonkeyStudio  圆转纯熟 | 2016-1-4 21:19:33
xsstomy 发表于 2016-1-4 20:57
那你看看输出,前后的base64是否是一致的

ok,继续测一下
AirMonkeyStudio  圆转纯熟 | 2016-1-5 11:13:08
还是没有成功,有么有人遇到我一样的问题?
有图片上传不上去
AirMonkeyStudio  圆转纯熟 | 2016-1-5 14:12:59
昱少弋 发表于 2016-1-5 13:21
前台传递的base64和后端获取到的是一样的吗,好像可以把base64的字符串直接粘贴到浏览器地址栏上,看能不 ...

十分感谢回复,
把字符串黏贴到地址栏果然可以看到图片,base64竟然可以这么玩儿,我按照这个继续试试去
AirMonkeyStudio  圆转纯熟 | 2016-1-5 15:06:36
昱少弋 发表于 2016-1-5 13:21
前台传递的base64和后端获取到的是一样的吗,好像可以把base64的字符串直接粘贴到浏览器地址栏上,看能不 ...

按照你这个方法我反复测试了下
一直调到base64可以打印到浏览器上,就保存,结果图片就可以了
很感谢
xsstomy提供的信息也非常重要,之前因为看base64一大堆字符,就懒了去做个文件比较的工作,确实前后端base64是不一样的,很感谢xsstomy帮助提供的信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部