上传到strapi媒体库时如何订购图像?

How to order images, when uploading to strapi media library?

提问人:Артем Захаров 提问时间:10/28/2023 更新时间:10/29/2023 访问量:58

问:

我有一个带有拖放文件输入的邮递车表单。

一切正常。但是当我将照片上传到strapi时,图像的顺序会发生变化,据我所知,它们是按文件大小从大到小上传的。

例如,如何不按大小上传,而是按名称上传它们?

处于状态的图像 strapi 中的图片
1) id - 1, 尺寸 - 20 1) ID - 3, 尺寸 - 30
2) ID - 3, 尺寸 - 30 2) ID - 1, 尺寸 - 20
3) ID - 2, 尺寸 - 10 3) ID - 2, 尺寸 - 10

我已经接受了上传文件的存储位置的文件状态

const [acceptedFiles, setAcceptedFiles] = useState<FileWithPreview[]>([]);

提交表格后,我创建汽车并向其添加图像

...
const uploadFormData = new FormData();

uploadFormData.append("ref", "api::car.car");
uploadFormData.append("refId", `${res.data.data.id}`);
uploadFormData.append("field", "images");
uploadFormData.append(
  "path",
  `cars/${user ? `private/${user.username}` : "public"}/${
    res.data.data.id
  }`,
);
await fetcher.post(`/upload`, uploadFormData)
ReactJS 图像 下一个 .js 多部分表单-数据 strapi

评论


答:

0赞 antokhio 10/29/2023 #1

好吧,这是上传的痛苦,图像在处理后立即添加到数据库中,因此首先附加最小尺寸的图像。

在这种情况下,我会做的是: 我会在单独的请求中处理上传和条目创建,例如使用 /api/upload 路由上传图像,然后使用 /api/whatever 路由创建条目,这样您就可以将上传的文件 id 作为 [{id}] 的数组提供,以按照您想要的顺序获取它们......

评论

0赞 Артем Захаров 10/30/2023
谢谢你的回答。我以为strapi有这样的功能,但我没有找到它。顺便说一句,如果你有兴趣,我会告诉你我是如何解决这个问题的。当我将图片添加到日期表单时,我会生成一个唯一的名称,并且其中有 id 顺序,所以我决定在显示图像之前对图像进行排序 + 图像的最大数量为 6,所以我认为它会比逐个加载它们更快。虽然,另一方面,排序总是会发生并且需要一些时间,迟早会超过我花在一张一张图片上的时间。
1赞 Артем Захаров 10/30/2023
我想并意识到您的解决方案是最好的,因为我还有一个编辑汽车的表单,所以如果我想更改那里的顺序,我只需要更新 id 文件数组。非常感谢:)