在下面的onclick事件中,我点击API获取文件路径,然后将该文件路径传递给download方法----
onClick={event =>
{ event.preventDefault();this.handleDownloadDoc('downloadAPI')}}>
下载方法为:-
handleDownloadDoc = (function (fileName) {
var a = window.createElement("a");
window.body.appendChild(a);
a.style = "display: none";
return function (fileName) {
var json = JSON.stringify(fileName),
blob = new Blob([json], {type: "text/stream"}),
url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
};
}());
上面的代码我得到错误,因为不创建元素。请帮忙解决这个问题。
>
您不需要在渲染方法内创建箭头函数。
下面的工作代码和codesandbox链接:-
import React from "react";
import ReactDOM from "react-dom";
class App extends React.Component {
handleDownloadDoc = fileName => e => {
// Downloads the file
const link = document.createElement("a");
link.download = `${fileName}.txt`;
const blob = new Blob(["Hello, world!"], { type: "text/plain" });
link.href = URL.createObjectURL(blob);
link.click();
URL.revokeObjectURL(link.href);
// Opens in new window
// const blob = new Blob(["Hello, world!"], { type: "text/plain" });
// const fileURL = URL.createObjectURL(blob);
// window.open(fileURL);
};
render() {
return (
<div className="App">
<button onClick={this.handleDownloadDoc("downloadApi")}>
Download
</button>
</div>
);
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
希望有帮助!!!
以下是从服务器下载文件的示例:-
import React from 'react';
import './download.css';
class DownloadFile extends React.Component {
constructor(props) {
super(props);
}
downloadEmployeeData = () => {
fetch('http://localhost:8080/employees/download')
.then(response => {
response.blob().then(blob => {
let url = window.URL.createObjectURL(blob);
let a = document.createElement('a');
a.href = url;
a.download = 'employees.json';
a.click();
});
//window.location.href = response.url;
});
}
render() {
return (
<div id="container">
<h1>Download File using React App</h1>
<h3>Download Employee Data using Button</h3>
<button onClick={this.downloadEmployeeData}>Download</button>
<p/>
</div>
)
}
}
export default DownloadFile;
有关更多参考信息,请浏览此链接
问题内容: 我的代码从远程URL获取文件并在浏览器中下载文件: 代码:http://play.golang.org/p/x-EyR2zFjv 可以获取文件,但是如何在浏览器中下载文件? 问题答案: 要使浏览器打开下载对话框,请在响应中添加和标头: 在将内容发送到客户端之前,请执行此操作。您可能还希望将响应的标头复制到客户端,以显示适当的进度。 要将响应主体流传输到客户端而不将其完全加载到内存中(对
问题内容: 我每天都有大量的CSV文件要从Yahoo Finance下载。我希望我的应用程序读取文件的创建日期(在我的计算机上,而不是服务器上)。如果创建日期早于今天,则应下载新文件(因为它将具有新数据)。如果不是,则不应该下载新文件,并且相关计算器(本质上就是我的应用程序)应该将上次下载的文件用于特定的股票代码。 我进行了一些谷歌搜索,并找到了Apache POI项目。 这是最好的方法吗?有没有
编辑 当我在模拟器中运行这段代码时,代码仍然不能工作-文件没有下载。
问题内容: 我需要将文件从服务器下载到桌面。(UBUNTU 10.04)我没有Web访问服务器,只是ssh。 如果有帮助,我的操作系统是Mac OS X和iTerm 2作为终端。 问题答案: 在您的终端中,键入: 相应地替换用户名,主机,远程文件名和本地目录。 如果要访问EC2(或其他需要使用私钥进行身份验证的服务),请使用以下选项:
问题内容: 我有一个URL,用于保存我的工作中的一些项目,它们大部分是MDB文件,但也有一些JPG和PDF。 我需要做的是列出该目录中的每个文件(已完成)并为用户提供下载它的选项。 使用PHP如何实现? 问题答案: 要读取目录内容,可以使用readdir()并使用脚本(在我的示例中)来下载文件 在其中,您可以强制浏览器发送下载数据,并使用basename()来确保客户端不会传递其他文件名,例如
我正试图下载一些公共数据文件。我通过screensrap获取指向文件的链接,这些文件看起来都是这样的: 我在Requests library网站上找不到任何文档。