如何在 php 中从 BLOB 创建/保存文件?
Posted
技术标签:
【中文标题】如何在 php 中从 BLOB 创建/保存文件?【英文标题】:How can I create/save a file from BLOB in php? 【发布时间】:2018-03-20 16:40:42 【问题描述】:到目前为止我做了什么:
好的,所以我创建了一个 blob 文件(wav 内容),它存储在 blob:http://localhost/cf6fefdc-352e-4cec-aef8-03af6d0d0ef6 下。
当我将此 URL 放入浏览器时,它会播放该文件。
我需要做什么 我想将 blob 转换为一个实际的文件,我想将它存储在我的网络服务器上。 我正在通过 AJAX 将 blob 对象交给一个 php 文件
$.ajax (
type: "POST",
url:"path/to/my/file.php",
data: thefile : blob ,
success: function(text)
console.log(text);
,
error:function()
console.log("Error")
);
这行得通。如果我 print_r 它返回的变量 [object Blob] 我的 PHP
<?php
$file = $_POST['thefile'];
print_r($file);
谁能告诉我如何从那里转换文件并将其保存到我的服务器?
【问题讨论】:
How can javascript upload a blob?的可能重复 【参考方案1】:在您的 file.php 中添加此代码
$filePath = 'uploads/' . $_POST['thefile'];
$tempName = $_FILES['thefile']['tmp_name'];
if (!move_uploaded_file($tempName, $filePath))
echo 'Problem saving file: '.$tempName;
die();
// success report
echo 'success';
【讨论】:
你需要在你的根目录中有“uploads”文件夹 感谢您的回答。我创建了文件夹(以防万一,权限 777),但我收到一条错误消息“通知:未定义索引:/Applications/XAMPP/xamppfiles/htdocs/website/wp-content/ 中的文件在第 6 行的主题/主题/file.php 保存文件时出现问题:“在第 6 行它说:$tempName = $_FILES['thefile']['tmp_name' ]; file_put_contents($path, $data);从 ajax 获取该 blobdata 并使用此方法保存到您的目录中 好的,这就是我的 php 文件现在的样子:` $file = $_POST['thefile']; file_put_contents("test.wmv", $file);` 它的作用是创建一个 text.wmv 文件,但它只有 13 个字节,如果我在文本编辑器中打开它,内容是“[object Blob] ”。所以文件已创建,但仍然不是正确的方式......有什么想法吗?以上是关于如何在 php 中从 BLOB 创建/保存文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Javascript/Node 中从 blob 写入 .wav 文件