【问题标题】:How can I create/save a file from BLOB in php?如何在 php 中从 BLOB 创建/保存文件?
【发布时间】: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);

谁能告诉我如何从那里转换文件并将其保存到我的服务器?

【问题讨论】:

标签: php file save blob wav


【解决方案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] ”。所以文件已创建,但仍然不是正确的方式......有什么想法吗?
猜你喜欢
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 2014-12-30
  • 2015-01-30
  • 1970-01-01
  • 2020-07-27
  • 2016-11-04
相关资源
最近更新 更多