Javascript To PHP Загрузка файла отсутствующих байтов - PullRequest
0 голосов
/ 25 ноября 2018

Мне нужно загрузить файлы из javascript в php для двоичного чтения, и кажется, что в начале добавляется дополнительный 0 байт, а в конце пропускается один.

Код Javascript:

let formData = new FormData();
formData.append("files[]", fileInput.files[0]);

uploadButton.classList.add("is-loading");


fetch(url, {
          method: "POST",
          body: formData
       }).then(response => {
           if(response.status === 200) showContent(fileInput.files[0].name);
       });

PHP-код:

if(isset($_FILES["files"])) {
      $name = $_FILES["files"]["name"][0];
      $tmp = $_FILES["files"]["tmp_name"][0];

      $path = "";

      do { $newName = str_replace(".uexp", "", $name) . "-" . generateRandomString(); $path = "../filestore/$newName.uexp"; } while(file_exists($path));

      move_uploaded_file($tmp, $path);

      $str = file_get_contents($path);
      $byteArray = unpack("C*", $str);

      $_SESSION["Name"] = $name;
      $_SESSION["Path"] = $path;
      $_SESSION["File"] = serialize($byteArray);
  }

Когда я считываю файл в каталоге хранилища файлов (то есть после move_uploaded_file), он отличается от первоначально загруженного.

Файл, который был первоначальноЗагрузка начинается с (в шестнадцатеричном формате): EA 00 00 и заканчивается (в шестнадцатеричном формате): 83 2A 9E.Файл, который можно найти в папке хранилища файлов, начинается с (в шестнадцатеричном формате): 00 EA 00 и заканчивается (в шестнадцатеричном формате): 83 2A.

В результате файл больше не может быть прочитаноригинальное приложение.Я использую PHP 7.2 и IIS в качестве моей платформы.

Что-нибудь, что мне не хватает?

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