我正在开发一个应用程序,我需要提供两个上传文件选项,一个用于图像,一个用于视频,我有这个代码Ref
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" />
它可以很好地上传文件,但问题是如何确定哪个文件来自哪个输入类型,以便区分图像和视频,因为我必须为它们分配单独的唯一名称并保存到数据库
答案 0 :(得分:2)
您可以使用HttpPostedFileBase
的内容类型识别图像if (file.ContentType.Contains("image"))
{
var isImage = true;
}
如果您只对一个图像进行了排序,则还可以检查视频内容类型以进行验证。如果您有两张图片,我们可能需要考虑别的事情。
答案 1 :(得分:2)
可能更好的方法是按键识别文件。
Request.Files["fileUpload1"]
应该返回图片
和
Request.Files["fileUpload2"]
应该返回视频
仅供参考,Request.Files.AllKeys
包含所有上传文件的所有密钥,它们应与您为<input type="file"...
元素指定的任何名称相匹配。