输入文件从js到mysql blob和php输出

时间:2017-05-23 16:32:38

标签: javascript php mysql blob filereader

我对此感到疯狂:我有一个输入文件,通过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;

0 个答案:

没有答案