使用Multer上传的PDF在React前端无法下载(路径已正常获取)
问题排查与解决方案
- 修正前端JSX语法错误:你当前的链接写法存在语法问题,
href={<code>http://localhost:6500/${data.Document_path}</code>}是错误的,code标签不该放在href属性中,这会导致浏览器请求错误的路径。正确的写法应该是直接使用模板字符串:
<p> <img src="https://i.sstatic.net/C4fZh.png" alt="下载图标" /> <a href={`http://localhost:6500/${data.Document_path}`} download>{data.Document}</a> </p>
检查路径大小写匹配:Express静态文件路由区分大小写,图片能访问不代表PDF路径大小写完全匹配。核对前端传递的
data.Document_path中的目录/文件名大小写,是否和服务器实际存储的完全一致(比如Resources是否实际是resources)。验证文件存在性与权限:登录服务器或本地存储目录,确认
/Resources/fileFromPhd/1683165623853_1642425612.pdf文件确实存在,且Node进程拥有读取该文件的权限。优化Express静态资源配置:改用绝对路径配置静态文件夹,避免因启动目录不同导致的路径解析错误:
const path = require('path'); app.use('/Resources', express.static(path.join(__dirname, 'Resources')));
- 直接测试PDF路径:在浏览器地址栏输入
http://localhost:6500/Resources/fileFromPhd/1683165623853_1642425612.pdf,如果直接访问也报错,说明问题出在后端配置或文件本身;如果能正常访问,再核对前端data.Document_path的取值是否准确。
内容的提问来源于stack exchange,提问作者Rediat
相关产品推荐
相关产品推荐

