84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
1.目前使用到签字画板,用的第三方js,将签名的字转换成图片,保存成了base64格式,然后添加到了图片的属性中。
想咨询这种情况,我submit到后端PHP,存储到mysql中,mysql设置什么类型?还是转成图片用路径的模式存储。如果存储成base64,后期前台怎么显示数据库中的base64数据。
ringa_lee
最好是转成blob,然后再以图片的形式保存到服务器上,数据库只存储图片的路径。
具体代码如下:
function dataURLtoBlob(url) { var arr = url.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], {type: mime}); }
参数说明:
url 为你的base64字符串
返回值:
Blob对象。
File对象是Blob对象的子类。之所以File可以上传到服务器,是因为继承了Blob。所以你可以直接把Blob当文件传到服务器上。
补充一下,之所以建议用Blob以上传文件的形式发送请求,是因为post请求中 body允许传递的字符长度是有限的,如果你直接把一个base64字符塞到body中,容易出现post请求body太长而导致请求失败
首先, 我不明白, 你看没看过, base64的字符串有多长. 你确定要把每一个图片, 长达数完字符的字符串, 存到MySQL中?如果你真的要存的话, 建议mediumtext. text类型, 都不一定够.
一楼说的blob和text应该都可以,不过要考虑一个问题,就是说提交不能超过1M,上传之前记得裁剪好再上传。
最好是转成blob,然后再以图片的形式保存到服务器上,数据库只存储图片的路径。
具体代码如下:
参数说明:
url 为你的base64字符串
返回值:
Blob对象。
File对象是Blob对象的子类。之所以File可以上传到服务器,是因为继承了Blob。
所以你可以直接把Blob当文件传到服务器上。
补充一下,之所以建议用Blob以上传文件的形式发送请求,是因为post请求中 body允许传递的字符长度是有限的,如果你直接把一个base64字符塞到body中,容易出现post请求body太长而导致请求失败
首先, 我不明白, 你看没看过, base64的字符串有多长. 你确定要把每一个图片, 长达数完字符的字符串, 存到MySQL中?如果你真的要存的话, 建议mediumtext. text类型, 都不一定够.
一楼说的blob和text应该都可以,不过要考虑一个问题,就是说提交不能超过1M,上传之前记得裁剪好再上传。