解决MVC下使用uploadify上传文件时HttpPostedFileBase为空的问题

 

引言:

由于file默认一次只能选择一个文件,那么,当需要一次选择多个文件时,就需要做一些改进,如结合flash来实现选择多个文件,也可以直接使用一些优秀的控件,如uplodify。

uplodify的效果:

clip_image001[6]

点击“SELECT FILES”:

clip_image003[6]

在打开的对话框中选择多个文件,其中文件的个数限制可以在uplodifyqueueSizeLimit属性进行配置。

点击“打开”:

clip_image004[6]

如果在uplodify的属性'auto'配置为‘true’时,则此时控件自动上传文件:

clip_image005[6]

现在来看一个最揪心的问题,那就是在Action中处理里,参数HttpPostedFileBase总为null

clip_image006[6]

问题在于,这个参数的名称有问题,只能是“FileData”(不区分大小写)如:

clip_image007[6]

或:

clip_image008[6]

或:

clip_image009[6]

等,强调不区分大小写!

看一个错误例子:

clip_image010[6]

这个东西真的是有意思啊……

:如果仍不行,查看一下View中enctype是否设置成"multipart/form-data":

image

P.S. 后来看文档发现uploadify有一个属性叫做fileDataName:

URL:http://www.uploadify.com/documentation/options/filedataname/

image

可以看到,之所以会发生上面的情况,是因为默认的文件数据名为“Filedata”!

所以,谜底也解开了,只是它不区分大小写罢了。

示例:

image

你可能感兴趣的:(uploadify)