Ứng dụng của tôi WPF được một tập tin từ người sử dụng với Microsoft.Win32.OpenFileDialog() ...Làm cách nào để xác định loại nội dung của tệp trong .NET?
Private Sub ButtonUpload_Click(...)
Dim FileOpenStream As Stream = Nothing
Dim FileBox As New Microsoft.Win32.OpenFileDialog()
FileBox.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
FileBox.Filter = "Pictures (*.jpg;*.jpeg;*.gif;*.png)|*.jpg;*.jpeg;*.gif;*.png|" & _
"Documents (*.pdf;*.doc;*.docx;)|*.pdf;*.doc;*.docx;|" & _
"All Files (*.*)|*.*"
FileBox.FilterIndex = 1
FileBox.Multiselect = False
Dim FileSelected As Nullable(Of Boolean) = FileBox.ShowDialog(Me)
If FileSelected IsNot Nothing AndAlso FileSelected.Value = True Then
Try
FileOpenStream = FileBox.OpenFile()
If (FileOpenStream IsNot Nothing) Then
Dim ByteArray As Byte()
Using br As New BinaryReader(FileOpenStream)
ByteArray = br.ReadBytes(FileOpenStream.Length)
End Using
Dim z As New ZackFile
z.Id = Guid.NewGuid
z.FileData = ByteArray
z.FileSize = CInt(ByteArray.Length)
z.FileName = FileBox.FileName.Split("\").Last
z.DateAdded = Now
db.AddToZackFile(z)
db.SaveChanges()
End If
Catch Ex As Exception
MessageBox.Show("Cannot read file from disk. " & Ex.Message, "Fail", MessageBoxButton.OK, MessageBoxImage.Error)
Finally
If (FileOpenStream IsNot Nothing) Then
FileOpenStream.Close()
End If
End Try
End If
End Sub
Và ứng dụng ASP.NET MVC của tôi phục vụ nó lên để tải về tại một trang web với FileStreamResult(). ..
Public Class ZackFileController
Inherits System.Web.Mvc.Controller
Function Display(ByVal id As Guid) As FileStreamResult
Dim db As New EfrDotOrgEntities
Dim Model As ZackFile = (From z As ZackFile In db.ZackFile _
Where z.Id = id _
Select z).First
Dim ByteArray As Byte() = Model.ImageData
Dim FileStream As System.IO.MemoryStream = New System.IO.MemoryStream(ByteArray)
Dim ContentType As String = ?????
Dim f As New FileStreamResult(FileStream, ContentType)
f.FileDownloadName = Model.FileName
Return f
End Function
End Class
Nhưng FileStreamResult() cần chuỗi loại nội dung. Làm cách nào để biết loại nội dung chính xác của tệp của tôi?
Làm thế nào là chức năng hiển thị được sử dụng trong trang? – shahkalpesh
Không có trang nào. Đó là một lớp điều khiển ASP.NET MVC. Hiển thị là một trong các Chế độ xem của nó. Nhưng, vì View này trả về một FileStreamResult hơn là một ViewResult, nó không có trang ASPX. –