1

我正在开发一个应用程序,我需要提供两个上传文件选项,一个用于图像,一个用于视频,我有这个代码参考

foreach (string file in Request.Files)
{
   HttpPostedFile hpf = Request.Files[file] as HttpPostedFile;
   if (hpf.ContentLength == 0)
      continue;
   string savedFileName = Path.Combine(
      AppDomain.CurrentDomain.BaseDirectory, 
      Path.GetFileName(hpf.FileName));
   hpf.SaveAs(savedFileName);
}

并且在视图中

<input type="file" id="fileUpload1" name="fileUpload1" size="23" class="image" /> 
<input type="file" id="fileUpload2" name="fileUpload2" size="23" class="video" /> 

它工作正常,文件被上传,但问题是我如何确定哪个文件来自哪个输入类型,以便区分图像和视频,因为我必须为它们分配单独的唯一名称并保存到数据库。

4

2 回答 2

2

您可以使用HttpPostedFileBase的内容类型来识别图像

if (file.ContentType.Contains("image"))
{
    var isImage = true;
}

如果您只有一张已排序的图像,您还可以检查您的视频内容类型以进行验证。如果你有两张图片,我们可能不得不考虑别的东西。

于 2012-11-13T16:20:28.283 回答
2

一种可能更好的方法是按键识别文件。

Request.Files["fileUpload1"]应该返回图像

Request.Files["fileUpload2"]应该返回视频

仅供参考,Request.Files.AllKeys已上传所有文件的所有密钥,它们应与您为<input type="file"...元素指定的任何名称匹配。

于 2012-11-13T16:48:12.257 回答