HTML5文件API - 使用PHP

时间:2018-05-14 08:11:36

标签: javascript php jquery html5

我有以下jQuery,我认为应该将切片文件传递给PHP:

var blob = f.slice(start, stop);

var formData = new FormData();    
formData.append('fileUpload', blob, f.name);

$.ajax({
     url: 'save.php',
     type: 'POST',
     data: formData,
     processData: false,
     contentType: false,
     success: function(msg){
          alert("Success: " + msg);
     },
     error: function(bla, msg){
          alert("Fail: " + msg);
     }
});

但是,我不确定将blob保存到文件中的PHP应该是什么样的。

目的是让浏览器对文件进行切片,然后保存输出。

2 个答案:

答案 0 :(得分:0)

将其作为服务器上的文件接收

<?php
  //var_dump($_FILES) // check if you received it or not
  $blob = $_FILES('fileUpload');
  file_put_contents('/path/to/new/file_name', $blob);

?>

您可能希望先将文件保存到tmp位置,然后再将其检查到最终位置(使用PHP重命名()函数)。

顺便说一句:为什么不把BLOB保存到DB?这是目前处理文件的合法方式,毕竟这就是BLOB MySQL数据类型的用途。

我已经问过这个问题并且有效,请看一下:send formData appended with blob to server

答案 1 :(得分:-2)

由于contentType: false数据在$_FILES而非$_POST中可用。一种方法就是这样:

<?php

    move_uploaded_file(
        $_FILES['fileUpload']['tmp_name'], 
        $_FILES['fileUpload']['name']
    ); 

?>