Angular - PrimeNg - 文件上传 - PDF 文件未在 AWS S3 存储桶中正确上传
Angular - PrimeNg - File Upload - PDF file not properly uploading in AWS S3 Bucket
我正在使用 Angular V6 和 aws-sdk 包通过 Prime NG 文件上传库将文件上传到 AWS S3 存储桶中。
我正在尝试使用以下代码上传 PDF 文件,文件正在 S3 存储桶中上传,但是当我打开同一文件时,它显示内容已损坏的错误
我尝试了多种方法,但没有成功。
下面是我的代码:
const files = event.files
const fileReader = new FileReader();
if (files && files.length) {
const fileToRead = files[0];
if (fileToRead) {
fileReader.onload = function (fileLoadedEvent) {
const textFromFileLoaded = fileLoadedEvent.target['result'];
if (textFromFileLoaded) {
var bucket = new AWS.S3({ params: { 'Bucket': 'bucket-name' } });
let content = textFromFileLoaded
const params = {
Bucket: "bucket-name/path",
Key: "filename.ext",
Body: content,
};
bucket.upload(params, function (err, data) {
// handle the rest part
})
}
}
fileReader.readAsText(fileToRead, "UTF-8");
}
}
我想使用同一个文件上传库上传任何类型的文件。
我找到了解决方案:
问题是 - 我使用 fileReader
方法直接将文件内容传递到 S3 存储桶的主体。
解决方案是 - 直接将 files[0]
传递给 s3 存储桶的主体,无需读取文件并获取内容。
这是简单的代码:
uploadFile(event, type) {
const file = event.files[0]
if (file) {
var bucket = new AWS.S3({ params: { 'Bucket': 'bucket-name' } });
const params = {
Bucket: "bucket_name/path",
Key: filename.ext,
Body: file ,
};
bucket.upload(params, function (err, data) {
handle the rest part
})
}
}
参考link了解流程。
我正在使用 Angular V6 和 aws-sdk 包通过 Prime NG 文件上传库将文件上传到 AWS S3 存储桶中。
我正在尝试使用以下代码上传 PDF 文件,文件正在 S3 存储桶中上传,但是当我打开同一文件时,它显示内容已损坏的错误
我尝试了多种方法,但没有成功。
下面是我的代码:
const files = event.files
const fileReader = new FileReader();
if (files && files.length) {
const fileToRead = files[0];
if (fileToRead) {
fileReader.onload = function (fileLoadedEvent) {
const textFromFileLoaded = fileLoadedEvent.target['result'];
if (textFromFileLoaded) {
var bucket = new AWS.S3({ params: { 'Bucket': 'bucket-name' } });
let content = textFromFileLoaded
const params = {
Bucket: "bucket-name/path",
Key: "filename.ext",
Body: content,
};
bucket.upload(params, function (err, data) {
// handle the rest part
})
}
}
fileReader.readAsText(fileToRead, "UTF-8");
}
}
我想使用同一个文件上传库上传任何类型的文件。
我找到了解决方案:
问题是 - 我使用 fileReader
方法直接将文件内容传递到 S3 存储桶的主体。
解决方案是 - 直接将 files[0]
传递给 s3 存储桶的主体,无需读取文件并获取内容。
这是简单的代码:
uploadFile(event, type) {
const file = event.files[0]
if (file) {
var bucket = new AWS.S3({ params: { 'Bucket': 'bucket-name' } });
const params = {
Bucket: "bucket_name/path",
Key: filename.ext,
Body: file ,
};
bucket.upload(params, function (err, data) {
handle the rest part
})
}
}
参考link了解流程。