HTML5 File API - Сохранить BLOB-файл в файл с помощью PHP - PullRequest
0 голосов
/ 14 мая 2018

У меня есть следующий 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);
     }
});

Однако я не уверен, как должен выглядеть PHP, чтобы сохранить большой двоичный объект в файл.

Предполагается, что браузер нарежет файл и затем сохранит вывод.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Из-за contentType: false данные доступны в $_FILES, а не $_POST.Один из способов сделать это так:

<?php

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

?>
0 голосов
/ 14 мая 2018

Получите его в виде файла на вашем сервере

<?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Функция rename ().

Кстати: почему бы просто не сохранить BLOB-объект в БД?В наши дни это законный способ обработки файлов, для этого и нужен тип данных BLOB MySQL.

Я уже спрашивал об этом, и это сработало, посмотрите: send formData с добавлением blob всервер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...