gpt4 book ai didi

reactjs - 使用 cloudinary 更改 React-Dropzone 图像上传中的文件名

转载 作者:行者123 更新时间:2023-12-04 13:19:16 31 4
gpt4 key购买 nike

我正在使用 react-dropzone 和 cloudinary 进行图片上传。

我已经在我的帐户和我的 React 项目之间建立了成功的连接,我可以通过我的 React 项目上传图片。

我在设置 React 项目中的文件名时遇到问题。

这是我的 React 项目的代码片段。

我已经尝试过这样的事情:

    onImageDrop(files) {
console.log(files)
var test = JSON.parse(JSON.stringify(files))
test[0]["name"] = "test"

this.handleImageUpload(test);
}

但是我收到一条错误消息,提示该文件是只读的。

这是我所拥有的工作示例

onImageDrop(files) {
this.handleImageUpload(files[0]);
}

handleImageUpload(file) {
let upload = request.post(CLOUDINARY_UPLOAD_URL)
.field('upload_preset', CLOUDINARY_UPLOAD_PRESET)
.field('file', file);

upload.end((err, response) => {
if (err) {
console.error(err);
}
console.log(response)
});
}

render() {
return (
<div>
<Dropzone
onDrop={this.onImageDrop.bind(this)}cloudinary
accept="image/*"
multiple={false}>
{({ getRootProps, getInputProps }) => {
console.log("input props", getInputProps)
return (
<div
{...getRootProps()}
>
<input {...getInputProps()} />
{
<p>Try dropping some files here, or click to select files to upload.</p>
}
</div>
)
}}
</Dropzone>
</div>
)
}

如何在将文件发送到 cloudfire 之前更改文件名?

最佳答案

上传时可以通过设置public_id来设置Cloudinary上的图片名称。

例如:

import React from "react";
import ReactDOM from "react-dom";

import "./styles.css";

class Upload extends React.Component {
processFile = async e => {
var file = e.target.files[0];
var formdata = new FormData();

formdata.append("file", file);
formdata.append("cloud_name", "XXXX");
formdata.append("upload_preset", "XXXX");
formdata.append("public_id", "my-name1");

let res = await fetch(
"https://api.cloudinary.com/v1_1/<Cloud-Name>/auto/upload",
{
method: "post",
mode: "cors",
body: formdata
}
);

let json = await res.json();
console.log(JSON.stringify(json.secure_url));
};

render() {
return (
<div>
<h3>Upload</h3>
<input type="file" onChange={this.processFile} />
</div>
);
}
}
ReactDOM.render(<Upload />, document.getElementById("container"));

关于reactjs - 使用 cloudinary 更改 React-Dropzone 图像上传中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55938622/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com