是否可以使用jQuery或PHP上传数据URI?

时间:2012-08-05 21:46:11

标签: php javascript jquery

此刻我有这个数组包含很多数据URI。我之前在代码中设置了这个:

dataArray = [];
dataArray.push({name : file.name, value : this.result});

在对数据URI做了一些事情之后我想在用户最后按下上传按钮时上传它们,所以我将数据URI传递给PHP文件,如下所示:

$.each(dataArray, function(index, file) {   

    $.post('upload.php', dataArray[index], function(data) {

并在里面运行一些功能来显示加载栏等。

现在在PHP文件(upload.php)中我不知道该怎么做。每个数据URI将单独发布到PHP文件,但如何处理PHP中的数据URI?通常我会使用$ _POST来获取数据URI本身,但我真的不知道如何将其推送到服务器上的文件夹中。我可以将数据URI视为普通文件并使用$ _FILES吗?到目前为止,我还没有取得多大成功。

1 个答案:

答案 0 :(得分:3)

您的POST数据将如下:

$name = $_POST['name'];
$value = $_POST['value'];

在您触摸这些变量的值之前,需要首先清理所有变量并确认$value变量实际上是有效的图像文件。为此,您需要将data-URI转换为实际图像。

为此,您需要检查data-URI的结构:

data:[<MIME-type>][;charset=<encoding>][;base64],<data>

因此,为了解析它,您需要编写一个正则表达式从data-URI中提取此信息,解码base64编码的图像数据,最后尝试使用MIME类型将其解析为图像文件。如果此操作失败,则图像已损坏。如果没有,您可以将其保存到您的服务器。

听起来可能很复杂,但我怀疑你需要很长时间才能实施。