关于在asp.net中以编程方式上载多个文件并将文件名指定给fileupload控件
我的客户有一个要求 他想通过点击按钮上传文件夹“D:/MyFolder/”中的所有文本文件 所以我试过了,但我有问题 代码如下:关于在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
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);
}
}