簡體   English   中英

ASP.net MVC限制上傳文件

[英]ASP.net MVC Restricting Upload files

我在ASP.net項目的一個控制器中有一個上載方法,該方法可以正常工作,但是如何添加以限制文件類型; jpeg,jpg,png和bmp。

我在網上到處都看過,有很多解決方案,但是沒有一個對我有用。

這是我的代碼

public ActionResult Create([Bind(Include = "Id,Title,Description,FileName,FileType,FileSize,Author,DateUploaded")] FileSharing fileSharing)
    {

        if (Request.Files.Count > 0)
        {
            if (ModelState.IsValid)
            {
                HttpPostedFileBase file = Request.Files.Get(0);
                string fileName = Path.GetFileName(file.FileName);
                string filePath = Path.Combine(Server.MapPath("~/Assets/"), fileName);
                file.SaveAs(filePath);

                FileInfo fileInfo = new FileInfo(filePath);
                fileSharing.FileType = fileInfo.Extension.Remove(0, 1).ToUpper();
                fileSharing.DateUploaded = DateTime.Now;
                fileSharing.FileName = fileName;
                fileSharing.FileSize = fileInfo.Length.ToString();
                fileSharing.Author = User.Identity.Name;

                db.FileSharing.Add(fileSharing);
                db.SaveChanges();
                return RedirectToAction("Index");
            }          
        }
        return View(fileSharing);
    }

您可以通過以下方式檢查文件擴展名

HttpPostedFileBase file = Request.Files.Get(0);
var allowedExtensions = new string[]{".jpeg", ".png"};
string extension = Path.GetExtension(file.FileName);
if(allowedExtensions.Contains(extension))
{
//file allowed
}
else
{
//invalid extension
}

獲取擴展如下

var FileExtension = Path.GetExtension(fileName).ToLower();

並將其與file.SaveAs(filePath);之前的所需格式進行比較file.SaveAs(filePath);

if(FileExtension == ".jpg" || FileExtension == ".bmp" |....)

然后只保存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM