Controller:
[HttpPost] public ActionResult ImageUpLoad(Gallery gallery, HttpPostedFileBase[] Files) { foreach (HttpPostedFileBase File in Files) { if (_UploadRepository.ImageAllowFileType(File) == true) { _UploadRepository.ImageUploadToDatabase(gallery,File); //以二进制数据流形式保存到数据 } else { ModelState.AddModelError("", "只支持的.jpg .jpeg .png .bmp格式"); } } return RedirectToAction("Index", "Home"); }
ImageAllowFileType:
bool IUploadRepository.ImageAllowFileType(HttpPostedFileBase File)
{
var extension = Path.GetExtension(File.FileName);
var allowExtentions = new string[] { ".jpg", ".jpeg", ".png", ".bmp" };
if (allowExtentions.Contains(extension))
{
return true;
}
else
{
return false;
}
}
ImageUploadToDatabase:
void IUploadRepository.ImageUploadToDatabase(Gallery gallery, HttpPostedFileBase File)
{
Int32 Length = File.ContentLength;
byte[] TempImage = new byte[Length];
File.InputStream.Read(TempImage, 0, Length);
gallery.ImageData= TempImage;
db.Galleries.Add(gallery);
db.SaveChanges();
}
View:
<input type="file" id="Files" name="Files" multiple="multiple" /> @*multiple:HTML5新属性,规定输入字段可选择多个值 *@
我想实现的是先做文件格式的检查,所有文件中假如有一个不是图片,则不上传(包括符合要求的文件),要求重新选择。请教如何修改,实现此效果!
为何不用js先做判断?
写两个foreach循环啊 第一个只判断是否合法