在我目前的项目中,我需要打开一个由用户上传的PDF文件。我的aspx页面上有一个文件上传控件和一个上传按钮。用户单击“上载”按钮后,应立即保存该文件并在新窗口中打开。
我尝试使用客户端功能执行此操作:
<script type="text/javascript">
function openPDF() {
alert('The file is open.');
window.open('Open PDF.aspx','PDF');
return true;
}
</script>
但是“打开PDF.aspx”页面是空白的。
打开PDF.aspx.cs文件如下所示:
protected void Page_Load(object sender, EventArgs e)
{
string fullFileName = Session["fullFileName"].ToString();
WebClient client = new WebClient();
Byte[] buffer = client.DownloadData(fullFileName);
if (buffer != null)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", buffer.Length.ToString());
Response.BinaryWrite(buffer);
}
}
完整文件路径和文件名在BtnUpload_Click事件中构造,该事件是服务器端事件,并在客户端函数之后执行。 如何将完整文件路径作为会话或查询字符串传递给“打开PDF.aspx”页面?
如果还有其他方法可以实现这一点,那么请提出你的想法。感谢!!!
答案 0 :(得分:0)
您可以执行以下操作:
在pdf.aspx中,您应该在本地加载文件,并通常使用适当的标头将其传输到客户端。
答案 1 :(得分:0)
如果您在“打开PDF.aspx”上传递文件名,它将无效, 因为您的上传操作将在“Open PDF.aspx”打开后执行。
您可以在BtnUpload_Click evet上将文件保存到服务器,然后注册客户端脚本以打开已保存的文件。