Laravel Web应用中使用window.showDirectoryPicker获取目录后如何获取完整路径
关于使用
window.showDirectoryPicker获取目录路径的问题 window.showDirectoryPicker 受浏览器安全机制限制,不会返回目录的真实完整路径——浏览器刻意隐藏本地文件系统的真实路径信息,防止泄露用户的隐私文件结构。
你不需要依赖真实路径来实现保存应用结果的功能,直接通过获取到的 dirHandle 句柄就能在用户选择的目录中创建、写入文件,示例代码如下:
async function saveAppResult() { const dirHandle = await window.showDirectoryPicker(); // 在选中目录创建/获取目标文件句柄 const fileHandle = await dirHandle.getFileHandle('app-result.json', { create: true }); // 创建可写流并写入内容 const writableStream = await fileHandle.createWritable(); // 这里替换为你的应用结果内容,比如序列化后的JSON数据 await writableStream.write(JSON.stringify({ data: '你的应用结果' })); // 关闭流完成写入 await writableStream.close(); }
如果你的业务需要Laravel后端参与文件处理,更常规的方案是:
- 前端将应用结果数据发送到Laravel后端
- 后端生成对应的文件后,返回下载链接给前端
- 用户点击链接后,浏览器会弹出默认的保存对话框,让用户选择保存目录
另外,你只能通过 dirHandle.name 获取到目录的名称,无法获取到完整的文件系统路径,这是浏览器的强制安全限制,没有绕过的合法方式。
内容的提问来源于stack exchange,提问作者Mohamed_Elgebaly
相关产品推荐
相关产品推荐

