Hi
I'm writing a site that allows users to download documents securely stored on the network off of the web server.
I'm using a com object on the server that we've been using here for ages that fetches the file from the network in a binary stream thus preventing user access to the network.
The problem I'm having is when the user clicks on the link, instead of the file opening, the page reloads itself with the stream as its source.
On the open save dialog instead of filename.* I get MyPage.aspx as the file name it is as if my response.AddHeader is not working.
It all works fine on my localbox -it only happens after I publish to a test deployment server.
(This is the first time I've tried this in Visual studio 2010 with .Net framework 4.)
Here is my Page and code:
<!-- inside of a datarepeater....-->
<asp:LinkButton ID="MyLink" runat="server" CommandArgument='<%# Eval("FilePath") %>' CommandName='<%# Eval("FileName") %>' ToolTip="Open File" OnCommand="LinkButton1_Click" CssClass="PrimaryNavigation"><%# Eval("FileName") %></asp:LinkButton>
And here is the code behind:
Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs)
Dim o As Object = CreateObject("#######") 'object that brings back stream
Dim vntStream() As Byte
Dim CmdArg, CmdName As String
CmdArg = e.CommandArgument 'fullpath to file
CmdName = e.CommandName 'Filename
'get binary stream
vntStream = o.FetchDocument(Server.UrlDecode(CmdArg.ToString))
'Add header - does not seam to be working
Response.AddHeader("Content-Disposition", "Attachment; Filename=" & CmdName)
'Write Out Binary stream
Response.BinaryWrite(vntStream)
'Finish
Response.End()
End Sub
Like I said, it looks like the line Response.AddHeader("Content-Disposition", "Attachment; Filename=" & CmdName) is not working.
Anyone out there see what's going wrong?