我在客户端读取了本地文件并将其提交给服务器,但是在恢复时会发生错误,并且无法打开图像。
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);
错误出在服务器代码中。正确的代码是:
$e = explode("BARRER",$d);
$f = fopen($e[0],"wb");
fwrite($f,$e[1]);
fclose($f);```