微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将 PDF 加载到 S3

如何解决无法将 PDF 加载到 S3

我正在尝试将本地文件上传到 S3。此代码适用于图像,但 PDF 格式不正确。

NodeJS 代码

const s3=new AWS.S3();
    let type=imgData.split(';')[0].split('/')[1];
    if (type == "pdf")  type="application/pdf";
    else                type="image."+type;
    imgData=new Buffer.from(imgData.replace(/^data:image\/\w+;base64,/,""),'base64');
    let params= { Bucket:bucketName,Key:fileName,Body:imgData,ACL:"public-read",ContentType:type };
    s3.upload(params,(err,data)=>{
        if (err) throw err; 
        console.log("Image loaded");
        });

浏览器上传

<input type="file" id="co-imageUpload" style="display:none">

$("#co-imageUpload").on("change",(e)=>{                                                         
    let myReader=new FileReader();          
    myReader.onloadend=(e)=>{   
        // Send to Node JS
        }                       
    myReader.readAsDataURL(e.target.files[0]);  
    });

解决方法

原来我需要更多地过滤数据:

const s3=new AWS.S3();
let type=imgData.split(';')[0].split('/')[1];
if (type == "pdf")  {
    type="application/pdf";
    imgData=new Buffer.from(imgData.replace(/^data:application\/\w+;base64,/,""),'base64');
    }
else{
    type="image."+type;
    imgData=new Buffer.from(imgData.replace(/^data:image\/\w+;base64,'base64');
    }
let params= { Bucket:bucketName,Key:fileName,Body:imgData,ACL:"public-read",ContentType:type };
s3.upload(params,(err,data)=>{
    if (err) throw err; 
    console.log("Image loaded");
    });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。