Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 正在上载扩展名不工作的图像_Asp.net_Sql_Vb.net - Fatal编程技术网

Asp.net 正在上载扩展名不工作的图像

Asp.net 正在上载扩展名不工作的图像,asp.net,sql,vb.net,Asp.net,Sql,Vb.net,我正在尝试上载一个图像,并将图像名称保存在数据库中,作为扩展名为.jpg的会话名称 我遇到的问题是,只有图像名称保存在数据库中,而不是扩展名。我正在使用这个代码 Dim strPath As String = Server.MapPath("~/UserPics/") If AsyncFileUpload1.HasFile Then AsyncFileUpload1.SaveAs(strPath & Session("UserName").ToSt

我正在尝试上载一个图像,并将图像名称保存在数据库中,作为扩展名为.jpg的会话名称 我遇到的问题是,只有图像名称保存在数据库中,而不是扩展名。我正在使用这个代码

Dim strPath As String = Server.MapPath("~/UserPics/")
        If AsyncFileUpload1.HasFile Then
            AsyncFileUpload1.SaveAs(strPath & Session("UserName").ToString() & ".jpg")
            lblUploadMessage.Text = "You uploaded " + AsyncFileUpload1.FileName
            con.Open()
            Dim objCmd As New SqlCommand("insert into regist( image1) values ('" & Session("UserName").ToString() & "')", con)
            objCmd.ExecuteNonQuery()
            con.Close()
        Else
            lblUploadMessage.Text = "Please select an image first"
            Return
        End If

如果插入的字符串与保存的字符串不同,则必须添加扩展名,请参见下文。此外,请从发布的文件中添加扩展名,而不是硬编码:

Dim objCmd As New SqlCommand("insert into regist(image1) values ('" & _
    Session("UserName").ToString() & _
    System.IO.Path.GetExtension(AsyncFileUpload1.PostedFile.FileName) & "')", con)
请将代码更改为“使用参数”,以防止SQL注入攻击:

Dim objCmd As New SqlCommand(con)
Dim sql As String = "insert into regist(image1) values (@image)"
Dim param(1) As SqlParameter
param(0) = New SqlParameter("@image", SqlDbType.VarChar)
param(0).Value = Session("UserName").ToString() & _
      System.IO.Path.GetExtension(AsyncFileUpload1.PostedFile.FileName);
objCmd.Parameters.AddRange(param)
objCmd.ExecuteNonQuery()
con.Close()
改变


作为旁注,您确定上传的图像是jpeg图像吗。从代码中可以看出,它很可能是一个PNG imgae或TXT文件。它只插入会话名称,因为这是您在SQL中输入的全部内容,2)始终使用SQL参数,以避免SQL注入。小bobby tables将从这段代码中获得乐趣。
Dim objCmd As New SqlCommand("insert into regist( image1) values ('" & Session("UserName").ToString() & "')", con)
Dim objCmd As New SqlCommand("insert into regist( image1) values ('" & Session("UserName").ToString() & ".jpg" & "')", con)