html - 由于文件格式或扩展名无效,无法在网页中打开下载的文件嵌入文件链接
问题描述
我的客户要求我在我的 react/django 站点中嵌入一个可下载 excel 的链接,不幸的是,只要我在本地运行该站点,下载就可以工作,但是部署后您可以成功下载该链接,但无论何时打开它,excel抛出一个弹出窗口,上面写着“Excel 无法打开文件‘文件名’,因为文件格式或文件扩展名无效。验证文件没有损坏并且文件扩展名与文件的格式匹配。我已经检查了文件在GAE构建目录中,扩展名仍然是.xlsx,下载后我仍然在我的下载文件夹中看到.xlsx扩展名。我什至尝试将excel转换为pdf并嵌入该链接,并且虽然这仍然适用于我的本地,但部署后我得到“无法打开文件”。
我不确定这是否真的与部署或 django 中的某些配置设置有关,或者类似于需要在 app.yaml 中指定静态图像的方式让我感到困惑。我已经在他们的网站上搜索了有关该主题的文档:https ://cloud.google.com/appengine/docs/flexible/python/reference/app-yaml并没有什么作为我错过的配置跳出来解决问题。
该链接使用标签嵌入到我的网站中:
<p> Here is a partial list of completed projects. Download the <a href="/files/ReferenceListCopy.pdf" download>link</a> for the full list. </p>
我希望这是我错过的简单事情。提前感谢您的帮助。
解决方案
我会将文件放在您的/static
目录中,并将其作为静态文件提供。将此添加到app.yaml
:
- url: /static/(.*\.(xlsx|xls))
static_files: static/\1
upload: static/(.*\.(xlsx|xls))
并通过以下方式访问:<a href="/static/ReferenceListCopy.xlsx" download>link</a>
如果仍然有问题,请尝试:
- url: /static/(.*\.xls)
mime_type: application/vnd.ms-excel
static_files: static/\1
upload: static/(.*\.xls))
- url: /static/(.*\.xlsx)
mime_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
static_files: static/\1
upload: static/(.*\.xlsx)
你可以对pdf
s 做同样的事情:
- url: /static/(.*\.pdf)
mime_type: application/pdf
static_files: static/\1
upload: static/(.*\.pdf)
推荐阅读
- spotfire - Spotfire 表达式 - 获取每个 id 的下一个指标的最小值
- python - 使用不同笔记本的功能时出现键错误 40
- r - saveRDS 在管道 %>% 中并让它返回对象
- angular - 降级 Angular 组件以在 AngularJS 混合应用程序中使用
- orange - 将数据表写入 Google 表格
- azure-service-fabric - 访问 ActorService 以获取所有演员的列表
- plot - 在 Julia 中绘制许多点
- javascript - 用于 React 中的对象的 useState
- c++ - 循环插入值
- xcode - 简化 Xcode 11 中跨多个包的项目工作