首页 > 解决方案 > 由于文件格式或扩展名无效,无法在网页中打开下载的文件嵌入文件链接

问题描述

我的客户要求我在我的 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>

我希望这是我错过的简单事情。提前感谢您的帮助。

标签: htmlcssdjangoreactjsgoogle-app-engine

解决方案


我会将文件放在您的/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) 

你可以对pdfs 做同样的事情:

- url: /static/(.*\.pdf)
  mime_type: application/pdf
  static_files: static/\1
  upload: static/(.*\.pdf)

推荐阅读