ASP modalpopupextender和上传控件

时间:2011-08-23 18:07:45

标签: asp.net file-upload modalpopupextender

我的页面上有一些上传控件正在由ajax ModalPopUpExtender显示,但它们目前无法正常工作。有人可以帮我弄清楚出了什么问题,以便他们可以开始将信息输入我的数据库吗?

顺便说一下,我不知道隐藏的字段是用于或正在做什么,所以如果有人理解,请向我解释。我没有写这个,我只是想解决它。

       <!-- Add a Document -->
    <li>
        <asp:LinkButton ID="DocumentButton" runat="server">Document</asp:LinkButton>
        <asp:Panel ID="DocumentPanel" runat="server" CssClass="modalPopup" Style="display:none">
            <asp:FileUpload ID="DocumentUpload" runat="server" />
            <asp:Button ID="SubmitDocument" runat="server" Text="Upload" onclick="SubmitDocument_Click" /><asp:Button ID="CancelDocument" runat="server" Text="Cancel" /><asp:HiddenField ID="filename" runat="server" />
        </asp:Panel>       
        <asp:ModalPopupExtender ID="DocumentModal" runat="server" DropShadow="True" 
            DynamicServicePath="" Enabled="True" OkControlID="SubmitDocument" PopupControlID="DocumentPanel" TargetControlID="DocumentButton"></asp:ModalPopupExtender>
    </li>

    Protected Sub SubmitDocument_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SubmitDocument.Click
    'Builds the full absolute URL to be inserted into the database. 
    Dim hostURL As String = Request.Url.Scheme & "://" & Request.Url.Host & ":" & Request.Url.Port & Request.ApplicationPath
    Dim sqlFileHREF As String = "INSERT INTO Marketing (ProductID, MarketingTypeID, MarketingTitle, MarketingData) VALUES (" & ProductID.Value & " , 4 , '" & LinkTitle.Text & "', '" & hostURL & "uploads/" & ProductID.Value & "/" & filename.Value & "')"
    'Create SQL Connection
    Dim SqlConnection As New SqlConnection("Server=off-db1;uid=productsDB_admin;pwd=*****;database=Products")
    SqlConnection.Open()
    Dim sqlCommand As New SqlCommand(sqlFileHREF, SqlConnection)
    sqlCommand.ExecuteNonQuery()
    SqlConnection.Close()
    Response.Redirect(Request.RawUrl)
End Sub

1 个答案:

答案 0 :(得分:1)

在ModalPopupExtender中设置OkControlID="SubmitDocument"可防止在服务器端引发Click按钮的SubmitDocument事件。

首先要尝试删除它并在DocumentModal.hide() Sub中添加SubmitDocument_Click

更新:
然后,您可以向sqlFileHREF添加一个监视,以查找导致Incorrect syntax near ','.的原因我怀疑您有引号或其他特殊字符。你可以做sqlFileHREF.Replace("'", "''")这样的事情来加倍你的报价。

注意:执行这样的SQL代码会使您容易受到SQL注入的攻击!

注意2:最好从连接字符串中删除密码并将其替换为您未来帖子中的星号(pwd=********)(您应该编辑此密码)

更新2:
使用DocumentUpload.FileName代替filename.Value,看起来像HiddenField这样的文件名用于某些未实现的功能或测试目的。