我这里有两个函数,它们接受文件密钥数组,并将其传递给下载函数,该函数将从 aws s3 单独下载每个文件。
我想将所有文件放在一个 zip 文件夹中,然后只需下载该 zip 文件夹,以便所有文件都放在一起。
问题:
1首先我如何设置保存文件的目录?
2.如何将所有正在下载的文件放入一个 zip 文件夹中,然后下载该 zip 文件夹?
非常感谢任何帮助或见解。
当前代码
async function handleDownloadClick(event) {
event.preventDefault();
const imagesAsArray = [...imagesUploaded];
for (let i = 0; i < imagesAsArray.length; i++) {
await DownloadFile(imagesAsArray[i]);
}
}
async function DownloadFile(fileToDownload) {
const filename = `${fileToDownload.key}`;
const result = await Storage.get(fileToDownload.key, {download: true})
console.log(result)
let mimeType = result.ContentType
let fileName = fileToDownload.key.split(`${job.jobId},/`)
console.log(fileToDownload.key)
try {
let blob = new Blob([result.Body], {type: mimeType})
//downloading the file …Run Code Online (Sandbox Code Playgroud) 我正在构建一个上传页面,该页面应该拍摄多个图像并使用 AWS amplify 存储将它们上传到 aws s3。
\n\n我有一些问题
\n\n我需要在上传之前将所有图像编码为 base64 格式。
它一次只允许上传一张图像,因此我需要循环遍历文件数组并单独上传每个图像。
我无法使用file.name.
我应该如何循环遍历图像数组,files将它们编码为 base64,并单独上传每个图像?
下面的代码适用于一次上传一张图像,但文件名未定义。
\n\n const file = useRef(null);\n\n function handleFileChange(event) {\n\n file.current = btoa(event.target.files); \n\n console.log(event.target.files) ///// length: 7\n /// 0: File {name: "921 crest road (19 of 91).jpg", lastModified: 1579836842179, lastModifiedDate: Thu Jan 23 2020 22:34:02 GMT-0500 (Eastern Standard Time), webkitRelativePath: "", size: 13998488, \xe2\x80\xa6}\n /// 1: File {name: "921 crest road (20 of 91).jpg", …Run Code Online (Sandbox Code Playgroud) 所以我这里有一些代码,它应该根据房产平方英尺和选择的包裹来计算价格。
当我像这样编写代码时,代码曾经与类组件一起使用......但我现在使用 react JS 和 Functional 组件。
我现在遇到的当前问题是让setBasePrice(1234);实际设置基本价格,以便它可以在函数中计算。
我也遇到了basePrice += basePrice * (percentage / 100);在功能组件中正常工作的问题。
我知道我现在完全错了,只是希望有人能指出我正确的方向,并可能告诉我如何清理我的代码。
更新
我添加了 useEffect 钩子,但总价出现错误。在 5500 平方英尺的价格应该是 272 美元,但出现了 112 美元。我的旧代码没有这样做,所以我不确定发生了什么。
类组件
this.state = {
propertySqft: "",
packageSelected: this.props.location.state,
totalPrice: null,
basePrice: null
};
}
checkPrice = () => {
debugger;
if(this.state.packageSelected === "Photography"){
this.state.basePrice = 159.998;
}else if(this.state.packageSelected === "Video"){
this.state.basePrice = 416.998;
}else if(this.state.packageSelected === "Drone Aerial Photos Only"){
this.state.basePrice = 199.998;
}else if(this.state.packageSelected === "Drone Aerial Video Only"){ …Run Code Online (Sandbox Code Playgroud) reactjs ×3
javascript ×2
amazon-s3 ×1
arrays ×1
aws-amplify ×1
download ×1
loops ×1
math ×1
react-hooks ×1