Я схожу с ума по этому поводу: у меня есть входной файл, и через js, и я получаю контент.
Теперь мне нужно сохранить его в mysql blob, а затем мне нужно использовать php для вывода или сохранения файла (который, для знания, является pdf или jpg).
Проблема в том, что я получаю пустой или поврежденный файл! Я попробовал все методы FileReader, но безуспешно: readAsDataURL дает мне поврежденный, readAsBinaryString пустой … как я могу добиться этого?
Мой код на данный момент для JS:
reader.onload = function(evt) {
if(evt.target.readyState != 2) return;
if(evt.target.error) {
alert('Error while reading file');
return;
}
filecontent = evt.target.result;
$.ajax({
url: 'xxx',
type: "POST",
data: {
visura:filecontent,
visura_nome:$("#visura").get(0).files[0].name
},
ajax: false,
scriptCharset: "utf-8",
contentType: "application/x-www-form-urlencoded; charset=UTF-8"}).done(function (response) {
...
return false;
});
return false;
};
reader.readAsBinaryString($("#visura").get(0).files[0]);
Для PHP:
$file=$row["visura"];
$visura_nome=explode(".",$row["visura_nome"]);
$visura_nome=$visura_nome[count($visura_nome)-1];
if($visura_nome=="pdf"){
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=visura.pdf");
header("Content-Disposition:filename=visura.pdf");
}else{
header("Content-type:image/".$visura_nome);
header("Content-
Disposition:attachment;filename=visura.".$visura_nome);
header("Content-Disposition:filename=visura.".$visura_nome);
}
echo $file;
Задача ещё не решена.
Других решений пока нет …