FileUploadコントロールを含む HTML ページ (OK、ASP.NET) があります。
<asp:GridView ID="DocGrid" ShowFooter="True" AutoGenerateColumns="False" runat="server" DataKeyNames="doc_id,req_id,doc_name,doc_path" BorderStyle="Solid" BorderWidth="1px" BorderColor="Silver" Width="500px" BackColor="White">
<Columns>
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="Document">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" Text='<%# Bind("doc_name") %>' NavigateUrl='<%# Bind("doc_path") %>' Target="_blank" runat="server"></asp:HyperLink>
</ItemTemplate>
<FooterTemplate>
<asp:FileUpload ID="fuFooter" runat="server" Width="350px" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
これで HTML のすべてではありませんが、質問を理解するために必要なすべてが含まれているはずです。
VB コード ビハインドでは、アップロードされたファイルは次のコードを使用して正しく保存されます。
Dim fuFooter As FileUpload = CType(DocGrid.FooterRow.FindControl("fuFooter"), FileUpload)
If (fuFooter.HasFile) Then
Dim uploadDir As String = Server.MapPath(VIRTUAL_REC_DOCS)
If Not String.IsNullOrEmpty(uploadDir) Then
Dim item As New ReqDoc()
item.doc_name = fuFooter.FileName
item.doc_path = uploadDir & fuFooter.FileName
fuFooter.SaveAs(item.doc_path)
item.req_id = Request.QueryString("Req_id")
DocReqManager.insertReqDoc(item)
bindDocGridgrid()
End If
Else
lblMessage.Text = "No file attached."
End If
実際、ファイルは私のVIRTUAL_REC_DOCS
フォルダーにアップロードされ、データベースに保存されます。
データ バインディングの後、項目はフォームの HyperLink コントロールに表示されます。
何らかの理由で、ハイパーリンクをクリックしてもアイテムは開きません。
NavigateUrl がパスを表示する方法に問題がありますか、それとも何か他のことが起こっていますか?