使用st.download_button下载PDF后无法打开的问题求助
问题原因与解决方法
问题根源:你代码里的
data参数传的是文件名字符串"MyDocumentSource.pdf",Streamlit会把这个字符串直接作为下载文件的内容,导致下载的文件本质是一段文本,而非真正的PDF二进制数据,所以系统无法识别为合法PDF。修正方案:需要先读取本地PDF文件的二进制内容,再将这个二进制数据传给
data参数。
修正后的代码:
import streamlit as st # 读取PDF文件的二进制内容 with open("MyDocumentSource.pdf", "rb") as f: pdf_data = f.read() st.download_button( label="Download", key="download_button", on_click=None, file_name="MyDocument.pdf", data=pdf_data, help="Click to download.", mime="application/pdf" # 可选:指定MIME类型,帮助浏览器正确识别文件类型 )
内容的提问来源于stack exchange,提问作者mrk
相关产品推荐
相关产品推荐

