我现在有一个数组,它包含很多数据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吗?到目前为止,我还没有取得多大成功。
您的POST
数据将如下所示:
$name = $_POST['name'];
$value = $_POST['value'];
在触摸这些变量的值之前,需要首先清除所有变量,并确认$value
变量实际上是一个有效的图像文件。为此,您需要将数据URI转换为实际图像。
为此,您需要检查数据URI:的结构
data:[<MIME-type>][;charset=<encoding>][;base64],<data>
因此,为了解析它,您需要编写一个正则表达式来从数据URI中提取这些信息,解码base64编码的图像数据,最后尝试使用MIME类型将其解析为图像文件。如果失败,则表示图像已损坏。如果没有,您可以将其保存到服务器。
这听起来可能很复杂,但我怀疑你要花很长时间才能实施。