Ответ 1
Быстрый просмотр в Reflector указывает, что HttpPostedFileWrapper
наследует от HttpPostedFileBase
и принимает HttpPostedFile
в конструкторе:
foreach (string inputTagName in HttpContext.Current.Request.Files)
{
HttpPostedFileBase filebase =
new HttpPostedFileWrapper(HttpContext.Current.Request.Files[inputTagName]);
if (filebase.ContentLength > 0)
{
//...
TheVillageIdiot поднимает замечательную мысль о лучшей конструкции цикла, и она будет работать для вас, если вы представляете область видимости объекта Request
текущего контекста HTTP (например, на Page
, но не в Global.asax
> ):
foreach (HttpPostedFile file in Request.Files)
{
HttpPostedFileBase filebase = new HttpPostedFileWrapper(file);
// ..
Если у вас есть LINQ, вы также можете использовать его:
var files = Request.Files.Cast<HttpPostedFile>()
.Select(file => new HttpPostedFileWrapper(file))
.Where(file => file.ContentLength > 0
&& file.ContentType.StartsWith("image/"));
foreach (var file in files)
{
SaveNonAutoExtractedThumbnails(doc, file);
}