获取HttpPostedFileBase的FileInfo

时间:2013-01-23 16:52:54

标签: c# .net vb.net file-io

是否有一种简单的方法可以从FileInfo获取HttpPostedFileBase对象?我意识到我可以保存文件然后执行DirectoryInfo.GetFiles之类的操作,然后遍历查找我的文件的文件,但有没有更简单的方法为给定文件执行此操作?

1 个答案:

答案 0 :(得分:7)

上传的文件没有关联FileInfo。仅将filename作为参数以及文件流本身发送。这就是你可以查询的内容:

HttpPostedFileBase file = ...

string filename = file.FileName;
int fileSize = file.ContentLength;
string contentType = file.ContentType;
using (Stream stream = file.InputStream)
{
    // do something with the file contents here
}

为了更好地了解从客户端发送的内容,我邀请您阅读multipart/form-data规范。

FileInfo对象包含LastModified和LastAccessed日期之类的内容,它不是上载文件时发送的信息。如果您将文件保存在Web服务器磁盘上,然后从中检索FileInfo,请记住,您要检索的是有关此文件的信息在服务器上不在客户端上只是因为上传文件时从不发送此信息。