gpt4 book ai didi

node.js - 如何删除filepond上的临时上传文件

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:21:40 25 4
gpt4 key购买 nike

我已经使用 filepond 在 React 上上传文件:

<FilePond files={this.state.files} allowMultiple={true} server="http://localhost:5000/api/upload" onupdatefiles={(fileItems) => { this.setState({ files: fileItems.map(fileItem => fileItem.file) }); this.handleFileMetadata(); }} />

现在我正在使用 express 处理文件上传

router.post('/upload', (req, res) => {
// logic to store file on mongodb
})

要删除上传的临时文件,filepond 会向上述服务器发送 DELETE 请求

所以我用

router.delete('/upload', (req, res) => {
})

但是我无法从mongodb中删除文件,如何删除没有任何属性的文件?

最佳答案

要删除MongoDB中的文件记录,需要声明需要删除的是哪条文件记录。无论如何,MongoDB 不会自动知道您的意图。

声明文件记录有几种方式:

  • (推荐解决方案)在POST/upload 路由中,将插入的文件记录id 返回给前端(例如5b88a6b213d0613d198d7ecf)。然后,在下面的 DELETE/upload/:recordId 请求中,前端会将插入的文件记录 id 传递给后端,例如删除/上传/5b88a6b213d0613d198d7ecf。接下来,Node.js代码可以提取出待删除的文件id,并在MongoDB中进行相应的操作。
  • 如果是临时文件,上传后需要立即删除,而且无论出于何种原因(奇怪的情况)都无法按照上述解决方案进行,如果Web应用程序是基于 session 的,则可以使用Session:在POST/upload 路由器,在 session 中存储 latestFileId 并在下一个 DELETE/upload 请求中检索 latestFileId session 值.
  • 如果是临时文件,上传后需要立即删除,而且无论出于何种原因(奇怪的情况)都无法按照第一种解决方案进行,并且Web应用程序是无 session 的,则可以使用Cookie:在 POST/upload 路由器中,使用 Set-CookielatestFileId 发送到浏览器并检索 latestFileId cookie 值下一个 DELETE/upload 请求。

关于node.js - 如何删除filepond上的临时上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55970903/

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