Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
VB.net SQL Server上载PDF_Sql_Asp.net_Sql Server_Vb.net - Fatal编程技术网

VB.net SQL Server上载PDF

VB.net SQL Server上载PDF,sql,asp.net,sql-server,vb.net,Sql,Asp.net,Sql Server,Vb.net,我想上传一个PDF从我的VB.Net程序到SQL Server。我有下面的代码 我需要上传的文件需要进入uDoc列,文件路径(C:\example.pdf)是字符串inDoc 关于如何完成我的代码的任何想法 谢谢 抢劫 如果这是ASP.Net应用程序,请使用FileUpload控件。它在浏览器中发出一个文件输入字段,以便您可以选择一个文件(如果使用.Net 4.5和兼容HTML5的浏览器,则可以选择多个文件)。您将无法获得完整的文件路径,但这通常与此无关,因为web应用程序无法读取客户端文件系统

我想上传一个PDF从我的VB.Net程序到SQL Server。我有下面的代码

我需要上传的文件需要进入uDoc列,文件路径(C:\example.pdf)是字符串inDoc

关于如何完成我的代码的任何想法

谢谢 抢劫


如果这是ASP.Net应用程序,请使用FileUpload控件。它在浏览器中发出一个文件输入字段,以便您可以选择一个文件(如果使用.Net 4.5和兼容HTML5的浏览器,则可以选择多个文件)。您将无法获得完整的文件路径,但这通常与此无关,因为web应用程序无法读取客户端文件系统。将上载的文件保存到某个位置,并将该位置存储在数据库中。

您存在一个完全开放的SQL注入漏洞。您可以通过使用“参数化查询”来修复它,而不是像那样直接连接字符串。这也将帮助您解决问题,因为您可以将二进制文件转换为
字节[]
,并将其分配给参数。这将比直接将
字节[]
放入查询字符串容易得多。感谢“参数化查询”的提示,但是该应用程序仅由封闭网络上的一个人使用,但我将在未来的中期承担这一任务。一旦我更改了它,我将如何添加字节文件?这不会改变它易受攻击的事实。尤其是它并没有改变这样一个事实,即它宣称一种不安全的编码实践是“可接受的”,这可能比这个应用程序造成更大的损害。还有一部分是关于如何使用参数化查询就是如何做您正试图做的事情。。。例如,这里的答案显示了如何使用字节数组作为查询参数:
Sub UploadInvoice()
    Dim myConn As SqlConnection
    Dim inAcc As String
    Dim inType As String
    Dim inDoc As String


    inAcc = Form1.tb1Account.Text
    inType = frmInv.cbType.Text
    inDoc = frmInv.tbFile.Text



    myConn = New SqlConnection(strConnection)
    myConn.Open()

    Dim mycmd As New SqlCommand

    mycmd.CommandText = "INSERT INTO tblInvoice (UDate, AccNo, Type, UDoc) VALUES(GETDATE(),'" & inAcc & "','" & inType & "','" & inDoc & "')"




    mycmd.Connection = myConn
    mycmd.ExecuteNonQuery()

    myConn.Close()
End Sub