Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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中以编程方式上载多个文件并将文件名指定给fileupload控件_Asp.net_Vb.net_File Upload - Fatal编程技术网

关于在asp.net中以编程方式上载多个文件并将文件名指定给fileupload控件

关于在asp.net中以编程方式上载多个文件并将文件名指定给fileupload控件,asp.net,vb.net,file-upload,Asp.net,Vb.net,File Upload,我的客户有一个要求 他想通过点击按钮上传文件夹“D:/MyFolder/”中的所有文本文件 所以我试过了,但我有问题 代码如下: Protected Sub btnAutoUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAutoUpload.Click Dim dbProvider As String Dim dbSource As String Dim con A

我的客户有一个要求

他想通过点击按钮上传文件夹“D:/MyFolder/”中的所有文本文件

所以我试过了,但我有问题

代码如下:

Protected Sub btnAutoUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAutoUpload.Click

    Dim dbProvider As String
    Dim dbSource As String
    Dim con As New OleDbConnection

    Dim SQL As String
    Dim da As OleDbDataAdapter
    Dim ds As New DataSet

    'Connecting and retrieving data form Database.
    dbProvider = "PROVIDER = Microsoft.Ace.OLEDB.12.0;"
    dbSource = "Data Source = '" & Server.MapPath("~/App_Data/Data.accdb") & "'"

    con.ConnectionString = dbProvider & dbSource

    SQL = "SELECT * FROM tblUserDetails WHERE UserType = 'Company'"
    da = New OleDbDataAdapter(SQL, con)
    ds.Clear()
    da.Fill(ds, "tblUserDetails")

    Dim fileUploadPath As String = "C:/MUNIM/"

    Dim NumberOfFilesToUpload As Integer = FileCount(fileUploadPath)

    Dim Extension As String
    Dim fileName As String

    Dim files() As String
    files = IO.Directory.GetFiles(fileUploadPath)

    For x As Integer = 0 To NumberOfFilesToUpload - 1

        Extension = IO.Path.GetExtension(files(x))

        If Extension = ".txt" Then

            fileName = IO.Path.GetFileNameWithoutExtension(files(x))

            If fileName = ds.Tables("tblUserDetails").Rows(x).Item("FileName") Then

                'Count the no. of document uploaders
                Dim lineCount = IO.File.ReadAllLines(documentViewersPath).Length

                'reading the names of document uploaders
                Dim reader As New System.IO.StreamReader(documentViewersPath)
                Dim allLines As New List(Of String)
                Do While Not reader.EndOfStream
                    allLines.Add(reader.ReadLine())
                Loop
                reader.Close()

                For i As Integer = 0 To lineCount - 1

                    If ds.Tables("tblUserDetails").Rows(x).Item("UserName") = ReadLine(i, allLines) Then

                        'Save the file to desired location (Upload File)

                    End If

                Next

            End If

        End If

    Next

End Sub
这怎么可能

我应该使用文件上传控制吗

如果是,那么如何选择要从中上载文件的特定文件夹


或者我应该如何以编程方式为FileUpload控件指定文件名?因为它是只读的。

你不能真正让你的服务器合法地从客户机上抓取文件。这就是文件上载控件的作用。通常,客户端会启动上载

您可以使用具有多个属性的文件上载控件,以允许您在IE版本10+、FF、Chrome和Opera中选择多个文件。否则,如果没有多属性,上传文件会很繁琐,因为您无法移动/控制单击所有文件

您将在中保存文件,只需循环并使用.SaveAs属性保存到目标文件。如果您需要,我可以提供相同的代码

Asp

<asp:FileUpload ID="FileUpload1" multiple runat="server" />


<br />

<asp:Button ID="Button1" runat="server" Text="Upload" onclick="Button1_Click" 
    Height="26px" />

在生产环境中,这需要您的服务器具有文件夹权限。

我已尝试按照您的建议使用您的代码,但无法选择多个文件。事实上,首先我得到了一个警告,multiple后面应该跟=号。所以我把它改为multiple=“true”。但是我仍然无法选择多个文件。你使用的浏览器是什么?不知道该告诉你什么好的先生,我只是在代码中重新复制,我可以将+多个文件转移到上载控件中。
protected void Button1_Click(object sender, EventArgs e)
{
    HttpFileCollection hfc = Request.Files;
    for (int i = 0; i != hfc.Count; i++ )
    {
        hfc[i].SaveAs(@"D:\MyFolder\" + hfc[i].FileName);
    }

}