# 无法下载 PDF

**URL:** https://meta.discourse.org/t/unable-to-download-pdf/136957
**Category:** Support
**Created:** [2019年十二月24日 09:23 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957 "2019-12-24T09:23:58Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![ashishprajapati](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ashishprajapati/32/179871_2.png) [@ashishprajapati](https://meta.discourse.org/u/ashishprajapati)
#### Post date: [2019年十二月24日 09:23 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/1 "2019-12-24T09:23:59Z")

</div>

大家好，

我使用服务器本地存储来保存文件。我已上传了一个 PDF 文件，并且它已成功上传到服务器，在服务器上也能找到（我通过 SSH 登录手动确认过）。

![Screenshot from 2019-12-24 14-44-42](https://cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/d/f/dfa1ec6847c2fb8bab34b902df495381fe0616c0.png)

这是我在尝试下载该 PDF 文件时出现的错误截图。

 ![014b8cf09288c46ec1164f083c18054c92fdb2bb](https://global.discourse-cdn.com/meta/original/3X/7/a/7a587b325d4e2a5ec9cf7f97c2863da4bd2fbd0d.png)

**以下是下载事件的日志：**

```plaintext
[discourse_cloud] Started GET "/uploads/short-url/ev4yCeBAtz19YgsTSEkhLMkKrFK.pdf" for 122.168.93.128 at 2019-12-24 09:16:40 +0000
[discourse_cloud] Processing by UploadsController#show_short as PDF
[discourse_cloud] Parameters: {"base62"=>"ev4yCeBAtz19YgsTSEkhLMkKrFK", "extension"=>"pdf"}
[discourse_cloud] Sent file /home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf (0.2ms)
[discourse_cloud] Completed 200 OK in 11ms (ActiveRecord: 0.0ms)
[discourse_cloud] Started GET "/home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf" for 122.168.93.128 at 2019-12-24 09:16:40 +0000
[discourse_cloud] ActionController::RoutingError (No route matches [GET] "/home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf")
/home/deploy/discourse_cloud/shared/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
[discourse_cloud] Rendering exceptions/not_found.html.erb within layouts/no_ember
[discourse_cloud] Rendered exceptions/not_found.html.erb within layouts/no_ember (0.6ms)
[discourse_cloud] Rendered layouts/_head.html.erb (1.0ms)
[discourse_cloud] Rendered common/_discourse_stylesheet.html.erb (0.6ms)
[discourse_cloud] Rendered application/_header.html.erb (0.1ms)
[discourse_cloud] Rendering html template
[discourse_cloud] Rendered html template (0.0ms)

```

可能是什么错误？:-/

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2019年十二月24日 11:59 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/2 "2019-12-24T11:59:59Z")

</div>

如果您没有通过 Discourse 上传文件，则需要在容器内修改 Nginx 配置。默认情况下，它并未配置为在任意目录中提供任意文件。

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [2019年十二月24日 15:35 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/3 "2019-12-24T15:35:29Z")

</div>

截图看起来是通过 Discourse 上传的，但 URL 路径看起来像是整理过的短链接，而不是原始链接？

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2019年十二月24日 17:30 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/4 "2019-12-24T17:30:23Z")

</div>

你能试着把那个 PDF 文件上传到 [try.discourse.org](http://try.discourse.org) 看看是否能正常工作吗？也许问题出在那个特定文件上？

我猜上传其他类型的文件应该没问题吧？

---

<div class="post-metadata">

### Author: ![ashishprajapati](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ashishprajapati/32/179871_2.png) [@ashishprajapati](https://meta.discourse.org/u/ashishprajapati)
#### Post date: [2019年十二月26日 10:00 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/5 "2019-12-26T10:00:58Z")

</div>

> [@tobiaseigen](#):
>
> 你能否尝试将该 PDF 上传到 [try.discourse.org](http://try.discourse.org) 看看是否能正常工作？也许问题出在那个特定文件上？

嗯，我上传文件时没有遇到任何问题，但现在无法下载该文件。

---

<div class="post-metadata">

### Author: ![ashishprajapati](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ashishprajapati/32/179871_2.png) [@ashishprajapati](https://meta.discourse.org/u/ashishprajapati)
#### Post date: [2019年十二月26日 10:01 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/6 "2019-12-26T10:01:59Z")

</div>

> [@pfaffman](#):
>
> 如果你不是通过 Discourse 上传的文件，就需要修改容器内的 nginx 配置。它并未被设置为支持在任意目录中提供任意文件。

我通过 Discourse 消息框上传了文件，上传成功，但我无法下载它。

---

<div class="post-metadata">

### Author: ![ashishprajapati](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ashishprajapati/32/179871_2.png) [@ashishprajapati](https://meta.discourse.org/u/ashishprajapati)
#### Post date: [2019年十二月26日 10:09 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/7 "2019-12-26T10:09:55Z")

</div>

> [@Stephen](#):
>
> 截图看起来是通过 Discourse 上传的，但 URL 路径看起来像是经过整理的短链接，而不是原始链接？

是的，@Stephen，我可以通过我的 Discourse 顺利上传文件，但无法下载。☹

请查看这张截图，它有一个 **下载** 按钮。当我尝试点击它时，无法下载。

 ![test](https://global.discourse-cdn.com/meta/original/3X/2/7/2719f67251243d61e033fe3e33c078bc31a9b118.png)

这是我尝试使用下载按钮下载图片时出现的错误。（下载按钮可能使用了 Ruby 的 **send\_data** 函数）

 ![Screenshot from 2019-12-26 15-37-57](https://global.discourse-cdn.com/meta/original/3X/a/c/ac12a3f472ace2bde164cfa4ecbdab0813197b2c.png)

我只是想确认一下，这是否是 NGINX 的问题，还是与其他目录权限相关的问题。

谢谢

---

<div class="post-metadata">

### Author: ![Pad\_Pors](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pad_pors/32/52016_2.png) [@Pad\_Pors](https://meta.discourse.org/u/Pad_Pors)
#### Post date: [2020年四月9日 13:15 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/8 "2020-04-09T13:15:52Z")

</div>

遇到了同样的问题。PDF 文件已上传，但随后无法下载文件，而是跳转到了“此页面不存在”的页面！

我进行了测试，在这里的 Meta 上可以轻松地上传和下载 PDF。

**更新** ：我尝试了一些更改，我认为这更像是与英语以外的其他语言相关的 #contribute:bug。

我不得不用 **英文名称** 重新创建 PDF（之前文件名中包含波斯语字符）。之后，上传的文件可以毫无问题地下载。

此外，带有波斯语名称的 PDF 文件在这里的 **Meta** 上可以轻松地上传和下载。所以我认为这与管理面板中的编码选项有关。

---

<div class="post-metadata">

### Author: ![ashishprajapati](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ashishprajapati/32/179871_2.png) [@ashishprajapati](https://meta.discourse.org/u/ashishprajapati)
#### Post date: [2020年五月9日 22:45 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/10 "2020-05-09T22:45:18Z")

</div>

> [@ashishprajapati](#):
>
> 这就是当我尝试使用下载按钮下载图片时出现的错误。（下载按钮可能使用了 **send\_data** Ruby 函数）
> 
> ![Screenshot from 2019-12-26 15-37-57](https://global.discourse-cdn.com/meta/original/3X/a/c/ac12a3f472ace2bde164cfa4ecbdab0813197b2c.png)
> 
> 我只是想确认一下，这是否是 NGINX 的问题，或者是其他目录权限相关的问题。

大家好，

抱歉回复晚了，但我通过修改 nginx.conf 文件解决了我的问题。修复非常简单，与 nginx.conf 有关（而我之前一直在尝试修复核心代码 😃）。

我从 nginx.conf 中删除了这一行：

```plaintext
 proxy_set_header X-Sendfile-Type X-Accel-Redirect;

```

这个修改让下载功能正常工作了 🙂

 ![Screenshot from 2020-05-10 04-12-53](https://global.discourse-cdn.com/meta/original/3X/4/2/427399665e2a5180e1b14a53c9158d051153581f.png)

从今往后我会更频繁地参与 🙂

谢谢，  
Ashish P.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2020年六月8日 22:45 UTC](https://meta.discourse.org/t/unable-to-download-pdf/136957/11 "2020-06-08T22:45:25Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
