我从api接收文件url作为响应.当用户单击"下载"按钮时,应在不打开新选项卡中的"文件预览"的情况下下载文件.如何在react js中实现这一点?

推荐答案

从前端触发浏览器下载不可靠.

您应该做的是,在服务器上创建一个端点,当调用该端点时,它会以正确的响应头进行响应,从而触发浏览器下载.

前端代码只能做这么多.例如,"下载"属性可能只是在新选项卡中打开文件,具体取决于浏览器和文件类型.

您需要查看的响应头是Content-TypeContent-Disposition.关于这些标题的更详细解释,请查看这answer.

Reactjs相关问答推荐

如何通过TEK查询将对象传递到Express后台

构建next.js项目时状态不变,但在dev服务器中

为什么安装FLOBIT后,所有的输入FIELD现在都有一个蓝色的轮廓?

cypress 不能点击SPAN

Next.js Next-Auth登录函数重定向到http://localhost:3000/api/auth/error

ReactJS:唯一项目的数量总和

如何在react 中过滤数组的数组?

我如何使用 React toastify (Promise) toast 和邮箱 js

如何根据ReactJS中元素列表中的布尔值仅显示一次值

Syncfusion:带有 TabItemsDirective 的选项卡组件不显示任何内容

ReactJS on AWS Amplify与EC2上的Spring boot服务之间的混合内容错误

有没有办法根据 Rechart 中的 activeDot 更改值?

useState 在生命周期中的位置

需要帮助在 document.queryselector 的 nextjs 页面上插入 useEffect 状态

如何跨微前端 React 应用管理状态管理?

MUI 卡组件上的文本未正确对齐

网格项不缩小以适应包含的可滚动列表

React 检测哪些 props 在 useEffect 触发器上发生了变化

如果两个组件在 React 中导入相同的 CSS 文件会发生什么?

调用函数以获取数据并在数据到达时导航到链接