由于文件格式或扩展名无效,因此无法在网页中打开下载的文件嵌入式文件链接

问题描述

我的客户请求我在我的react / django网站中嵌入一个可下载excel的链接,不幸的是,每当我在本地运行该网站时,下载工作就可以了,但是在部署之后,您可以成功下载该链接,但是只要打开excel会弹出一个弹出窗口,提示“ Excel无法打开文件'filename',因为文件格式或文件扩展名无效。请验证文件未损坏,并且文件扩展名与文件格式匹配。我已经检查了GAE上构建目录中的文件,扩展名仍然是.xlsx,下载后我仍然在我的downloads文件夹中看到.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进行同样的操作:

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