【发布时间】:2017-03-31 03:41:37
【问题描述】:
我有一个 reactjs 网络应用程序。在其中一个页面上,我希望用户单击下载按钮,然后能够下载我在assetsfolder 中的 pdf 文件。我似乎在尝试这样做时遇到了一些问题。这是我尝试过的。
作为参考,我已经尝试了question中提出的解决方案
答案表明这样做:
<a href="path_to_file" download="proposed_file_name">Download</a>
所以对于我的第一次尝试,我有一个如下所示的按钮:
<a href="../assets/resume.pdf" download="Resume">Download</a>
我在浏览器上收到的错误是Failed- No file。我认为我的路径是错误的,所以我尝试了很多变体,甚至是绝对路径,结果是一样的。找不到文件。
在第二次尝试中,我发现了另一个堆栈溢出question
这个问题的答案声明了这个答案:
<a href="file:///C:\Programs\sort.mw">Link 1</a>
当我尝试使用自己的目录路径实现第二个答案时,我收到了Failed - Network error 问题。有什么我遗漏的吗?
很久以前,我能够在线托管文件,但看起来像图像和样式表一样将文件放在目录系统中应该是一件容易的事。我在这里错过了什么吗?帮助将不胜感激。
--------编辑-----
文件结构如下:
react-site
-- node_modules
-- package.json
-- index.html
-- resume.pdf
-- README.md
-- src
|
| -- a bunch of files
| -- assets
|
| -- modules
|
- skill.js * This is where I reference the download
------- 编辑#2 ------
skills.js:
40 class Skills extends Component {
41 render() {
42 return (
43 <div>
44 <ReactHighcharts config={highchartConfig} domProps={{id: 'chartId'}}></ReactHighcharts>
45 <div>
46 <a href="resume.pdf" download="Resume">Download</a>
47 <RaisedButton label="Download Resume" primary={true}/>
48 </div>
49 </div>
50 );
51 }
52 }
53
54 export { Skills };
【问题讨论】:
-
您的文件夹结构是什么样的?该文件相对于 HTML 文件在哪里?
-
@Timo 感谢您的快速回复。我已经更新了答案以反映结构。
-
只是为了超级清楚。当你说你在 localhost 上运行它时,你的意思是你的浏览器显示
http://localhost/或类似的东西,还是你的意思是它显示file:///C:/whatever/index.html? -
我运行
npm start并使用localhost:3000查看我的网络应用程序 -
那么它应该可以工作,根据您显示的代码。您可能希望指定包含扩展名的文件名(例如,
Resume.pdf)。这也可能是您正在运行的服务器的问题,如果由于某种原因它没有设置为正确提供 pdf 文件或其他什么。
标签: javascript html