将图像(作为数据:image / png:base64)上传到网络服务器

时间:2012-02-07 23:41:18

标签: php javascript jquery forms file-upload

我在这样构建的网页上有一张图片:

<img src="data:image/png;base64;...." />

图像内容来自用户粘贴到浏览器中。我的问题是如何将图像上传到网络服务器(PHP,如果重要的话)。

2 个答案:

答案 0 :(得分:7)

1)使用javascript(或用户提交的数据)

获取src属性

2)按原样“提交”到服务器或剪切并提交base64;之后的所有内容(AJAX或POST,方法GET可能不适合大图像)

3)在服务器端解码base64(base64;之后的所有内容,如果没有被剪切),将结果保存为二进制 - 它是一个图像。

就是这样。

ps:只是一个提醒 - 仔细考虑可能的代码注入。检查提交的数据或有人将上传编码的PHP脚本。禁用上传文件夹中的php引擎,并验证最终结果是否为实际图像(例如,在GD库的帮助下)。即使脚本无法在您的服务器上运行,它也可能被用于使用php脚本对其他服务器的恶意请求。

答案 1 :(得分:1)

只需将基本64位编码文本发布到您的服务器。

您可以将其另存为...

file_put_contents($image, base64_decode($str));