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

标签 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 吗?到目前为止我还没有取得太大的成功。

最佳答案

您的POST数据将如下所示:

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

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

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

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

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

这听起来可能很复杂,但我怀疑你会花很长时间来实现。

关于php - 是否可以使用 jQuery 或 PHP 上传数据 URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11820327/

相关文章:

javascript - 如何在ace编辑器上设置焦点?

javascript - 限制 JSON 结果的数量

php - 使用 PHP 更新 MySQL 数据库

php - 如何高效地执行此 mysql 查询? (加入并检查存在)

php - 如何使用 codeigniter 读取关联数组中的 excel 文件?

javascript - 在 nvd3 气泡图中隐藏气泡

javascript - Qt QML 如何格式化(突出显示)文本

javascript - 从子进程执行node.js中的代码

javascript - 如何将参数传递给回调函数而不执行它

php - 通过在php中连接字符串来创建变量名