从我所见,当我按下包含以下内容的表单提交时,所有操作都会发生:
<ImageInput multiple source="pictures" accept="image/*">
<ImageField source="src" title="title" />
</ImageInput>
然后一些类似的代码正在运行:
const addUploadCapabilities = requestHandler => (type, resource, params) => {
if ( (type === 'CREATE' || type === "UPDATE")) {
if (params.data.pictures && params.data.pictures.length) {
const pictures = params.data.pictures.filter(p => p.rawFile instanceof File)
const url = config.uploadImageEndpoint;
//the params contain the image as a fileInstance
params.data.pictures = [];
for (let picture of pictures) {
let form = new FormData();
form.append('file', picture.rawFile);
let options = APIUtils.createOptionsForImageUpload(form);
return fetchUtils.fetchJson(url, options)
.then(res => {
params.data.pictures.push({id: res.json.content[0].id});
return requestHandler(type, resource, params)
});
}
}
}
return requestHandler(type, resource, params);
};
然后运行 restClient 代码以在创建或编辑时保存表单的资源。
我很好奇如何在这些文件保存在数据库中后获取 ids.. 然后提交表单并将这些 ids 连接到特定的 ImageInputs..
编辑:
使用上面的代码,我只得到一个带有我图片的第一个 id 的数组
谢谢!