我正在使用 Tauri 和 js api。我正在尝试获取放入窗口中的文件,我使用了 File-Drop 事件,但它返回了一个事件,我需要将其转换为真实文件,因为我正在尝试将文件发送到 API 并且我使用一个 formData 来格式化它。
洛里克斯。我知道这已经过时了,但我想我为自己找到了解决方案,所以我想与未来的搜索者分享。
首先,确保您尝试将文件拖放到其中的窗口已在
tauri.conf.json
中配置,键值为 "fileDropEnabled": true
。并确保您已在前端安装了 tauri api:
npm install @tauri-apps/api
然后,在前端,您需要使用 API 监听
tauri://file-drop
事件。
对我来说,这个导入看起来像这样:
import { listen } from '@tauri-apps/api/event'
然后在前端逻辑中的某个地方,您需要使用
listen
api 函数等待事件:
import { listen } from '@tauri-apps/api/event';
await listen("tauri://file-drop", async (e) => {
// event handling logic
})
生成的事件是具有以下形状的对象(TypeScript):
{
id: number,
event: string,
windowLabel: string,
payload: string[],
}
其中
payload
是事件在 drop 上注册的所有文件的路径数组。