ASPxUploadControl - 在服务器端获取上传的文件
ASPxUploadControl - get uploaded file on the server-side
我在我的页面中使用了多个 ASPxUploadControl
。我使用 FileUploadComplete
事件的 e.UploadedFile
参数成功获取上传的文件并保存它们。
但我希望在保存我的主要实体后能够访问(并保存)它们。原因是我需要将它们保存在一个文件夹中,该文件夹的名称将是我的实体 ID。
有没有一种方法可以在我的 C# 代码中的任意位置执行类似 myUploadControl.TheFileItIsCarrying
的操作?
我试过myUploadControl.UploadedFiles[0]
,但它会return一个没有内容的文件。
P.S.1: 我想到了将它们保存在一个临时文件夹中,然后移动到正确的文件夹中。但那样的话,如果多个客户端同时上传,我将不知道每个文件是谁的。
P.S.2:该场景类似于保存多个 Party
实体及其身份证件、简历等的扫描副本
如果你真的是把上传的文件保存到服务器,你可以先保存上传的文件,然后你应该可以对文件做任何你想做的事情,我不知道你是否真的在保存它或不是,但这可能是正在发生的问题。
If FileUpload1.HasFile Then
Try
Dim realPhysicalPath As String = Path.Combine(Server.MapPath("~\Files\"), FileUpload1.PostedFile.FileName)
FileUpload1.PostedFile.SaveAs(realPhysicalPath)
Label1.Text = "File name: " & _
FileUpload1.PostedFile.FileName & "<br>" & _
"File Size: " & _
FileUpload1.PostedFile.ContentLength & " kb<br>" & _
"Content type: " & _
FileUpload1.PostedFile.ContentType
Catch ex As Exception
Label1.Text = "ERROR: " & ex.Message.ToString()
End Try
Else
Label1.Text = "You have not specified a file."
End If
然后你可以从服务器上拉取那个特定的文件,我的例子是将所有保存的上传文件分配给一个 GridView
Dim filePaths() As String = Directory.GetFiles(Server.MapPath("~/Files/"))
Dim files As List(Of ListItem) = New List(Of ListItem)
For Each filePath As String In filePaths
files.Add(New ListItem(Path.GetFileName(filePath)))
Next
Dim hplnk As New HyperLinkField()
hplnk.DataTextField = "test"
hplnk.Text = "test"
hplnk.HeaderText = "yourHeaderTextValue"
GridView1.DataSource = files
GridView1.DataBind()
我在我的页面中使用了多个 ASPxUploadControl
。我使用 FileUploadComplete
事件的 e.UploadedFile
参数成功获取上传的文件并保存它们。
但我希望在保存我的主要实体后能够访问(并保存)它们。原因是我需要将它们保存在一个文件夹中,该文件夹的名称将是我的实体 ID。
有没有一种方法可以在我的 C# 代码中的任意位置执行类似 myUploadControl.TheFileItIsCarrying
的操作?
我试过myUploadControl.UploadedFiles[0]
,但它会return一个没有内容的文件。
P.S.1: 我想到了将它们保存在一个临时文件夹中,然后移动到正确的文件夹中。但那样的话,如果多个客户端同时上传,我将不知道每个文件是谁的。
P.S.2:该场景类似于保存多个 Party
实体及其身份证件、简历等的扫描副本
如果你真的是把上传的文件保存到服务器,你可以先保存上传的文件,然后你应该可以对文件做任何你想做的事情,我不知道你是否真的在保存它或不是,但这可能是正在发生的问题。
If FileUpload1.HasFile Then
Try
Dim realPhysicalPath As String = Path.Combine(Server.MapPath("~\Files\"), FileUpload1.PostedFile.FileName)
FileUpload1.PostedFile.SaveAs(realPhysicalPath)
Label1.Text = "File name: " & _
FileUpload1.PostedFile.FileName & "<br>" & _
"File Size: " & _
FileUpload1.PostedFile.ContentLength & " kb<br>" & _
"Content type: " & _
FileUpload1.PostedFile.ContentType
Catch ex As Exception
Label1.Text = "ERROR: " & ex.Message.ToString()
End Try
Else
Label1.Text = "You have not specified a file."
End If
然后你可以从服务器上拉取那个特定的文件,我的例子是将所有保存的上传文件分配给一个 GridView
Dim filePaths() As String = Directory.GetFiles(Server.MapPath("~/Files/"))
Dim files As List(Of ListItem) = New List(Of ListItem)
For Each filePath As String In filePaths
files.Add(New ListItem(Path.GetFileName(filePath)))
Next
Dim hplnk As New HyperLinkField()
hplnk.DataTextField = "test"
hplnk.Text = "test"
hplnk.HeaderText = "yourHeaderTextValue"
GridView1.DataSource = files
GridView1.DataBind()