Ошибка передачи двоичных данных на сервер - PullRequest
0 голосов
/ 05 февраля 2020

Я читаю локальный файл на стороне клиента и отправляю его на сервер, но при восстановлении возникает ошибка, и я не могу открыть образ.

JS

let req
let rsp

async function _post(url,data)
{
req = await fetch(url,{method: 'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body: "DATA="+data});

rsp = await fe.text();
document.getElementById('out').innerHTML = rsp;
}


      function handleFileSelect(evt){
        var files = evt.target.files;
            let f = files[0];
          if(!f.type.match('image.*')){
          alert('Not image.');}
          var reader = new FileReader();
          reader.onload = (function(theFile){
           return function(e){

                  _post('h.php',theFile.name+"BARRER"+e.target.result);

                 }})(f);reader.readAsBinaryString(f);}

      document.getElementById('files').addEventListener('change', handleFileSelect, false);

PhP

$d = $_POST['DATA'];
$e = explode("BARRER",$d);
$f = fopen($e[0],"w");
fwrite($f,$e[1]);
fclose($f);

1 Ответ

0 голосов
/ 11 февраля 2020

Ошибка была в коде сервера. Правильный код:

$e = explode("BARRER",$d);
$f = fopen($e[0],"wb");
fwrite($f,$e[1]);
fclose($f);```
...