【发布时间】:2018-07-13 08:06:10
【问题描述】:
我是新手,我正在尝试在浏览器上显示一个 pdf 文件。我收到了一个错误,因为无法加载 PDF。我正在尝试运行https://www.npmjs.com/package/react-pdf 中给出的示例程序。
App.js
import React, { Component } from 'react';
import { Document, Page } from 'react-pdf';
class MyApp extends Component {
state = {
numPages: null,
pageNumber: 1,
}
onDocumentLoad = ({ numPages }) => {
this.setState({ numPages });
}
render() {
const { pageNumber, numPages } = this.state;
return (
<div>
<Document
file="./1.pdf"
onLoadSuccess={this.onDocumentLoad}
>
<Page pageNumber={pageNumber} />
</Document>
</div>
);
}
}
export default MyApp;
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();
错误截图
【问题讨论】:
-
您不能在浏览器中运行的应用程序中引用本地文件系统上的文件。它根本无法访问您的文件系统。否则,任意网站都可能访问您计算机上的文件。这就是
./somePath无法工作的原因。您的本地 Web 服务器需要在相对于您的主机地址的特定路径下提供该文件,例如/media/1.pdf或只是1.pdf,具体取决于文件在服务器上的位置以及 Web 服务器的配置方式。 -
可能是文档路径:
file="./1.pdf"。这看起来像一个服务器端路径。尝试对文件使用绝对或相对 URL,并确保浏览器可以下载文件。打开开发者工具,检查网络选项卡,确保正在发送下载文件的请求,并且文件下载成功。