在过去的几天里,我一直在寻找一种将字符串从客户端发送到Node的方法,但是没有运气。

目前,我有一个带有十几个输入的表单和一个图像裁剪工具(fengyuanchen/cropper),用户可以上传照片,进行编辑(调整大小,裁剪等)并保存dataURL(data:image / png; base64,iVBORw0KGg [...])中的变量。我没有问题的表单输入,它们正在数据库中更新就好了。我在传递包含dataURL的变量时遇到问题。

理想情况下,我只希望用户提交一种表单,该表单将1)使用输入字段更新数据库,以及2)将canvas dataURL传递给节点,进行解码,将图像保存在服务器中,并在MySQL中添加条目。或者使用AJAX单独提交裁剪后的照片,而不会删除对输入字段的修改。

SO question: Save canvas data to file。选择的答案假设“您已经知道如何将字符串从浏览器发布到Nodejs服务器”。那就是我坚持的部分。

我读过关于可能使用的信息:
1)隐藏的表单字段-这可能/有效吗?
2)节点的模块加载器
3)Require.js
4)socket.emit('image',dataURL)

我已将图片的尺寸调整为1024x360,以便使用看起来不错的照片使dataURL尽可能短,直到找到更好的解决方案为止。尽管如此,这些dataURL最终还是很大(我见过一些多达700,000个字符)。我可以通过JSON发送数据吗?

任何帮助将不胜感激。

最佳答案

我建议您将base64转换回客户端上的文件,然后通过FormData上载它。由于您仍然必须将其转换回服务器上

将base64转换为文件+追加到FormData:Convert Data URI to File then append to FormData

然后使用multer从FormData获取文件

关于mysql - 如何将字符串从客户端传递到Node.js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35163515/

10-09 20:29