来自WebImage的asp.net mvc和FileName

时间:2011-03-11 14:18:01

标签: asp.net-mvc razor

我尝试使用WebImage从上传的文件中获取文件名,如下所示:

var imageName = new WebImage(file.InputStream).FileName;

但FileName属性始终返回null

也许我错过了什么?

4 个答案:

答案 0 :(得分:2)

要获取已上传文件的文件名,您可以从请求中获取图像,然后在其上调用此函数。

var imageName = new WebImage(file.InputStream).FileName;

..将是

var image = WebImage.GetImageFromRequest().FileName;

这是在请求中上传的图像的属性。

答案 1 :(得分:1)

我认为只有在使用FileName构造函数时才会设置WebImage(String filename)属性。您应该能够从file对象获取文件名。其他属性(例如HeightWidth等)应该可以正常工作。

答案 2 :(得分:1)

当您编写new WebImage(file.InputStream)时,您正在从原始流创建WebImage对象 您永远不会传递任何带有名称的内容,因此FileName属性为null

您应该使用file.FileName对象中的HttpPostedFile属性。

答案 3 :(得分:1)

我正在查看您使用Reflector的构造函数的源代码,并且没有设置文件名的位置。

但您可以使用

获取文件名
var fileName = Request.Files[0].FileName;

它只有这个构造函数设置文件名属性:

public WebImage(string filePath) 
   : this(new HttpContextWrapper(HttpContext.Current), filePath) {}

当然还有它使用的私人。