mvc3 上传图片

时间:2023-03-09 14:57:07
mvc3 上传图片

这是在Control里使用的代码,是在后台管理需要上传图片时使用的,不过我在这犯了一个错误, Request.Files[inputName];inputName名字中的大小写
<input type="file" name="image">应该与model里的字段的名字一致
if (Request.RequestType == "POST")
            {
                foreach (string inputName in Request.Files.AllKeys)
                {
                    HttpPostedFileBase file = Request.Files[inputName];
                    //存入文件
                    if (file.ContentLength > 0)
                    {
                        PropertyInfo pro = model.GetType().GetProperty(inputName);
                        string proValue = (string)pro.GetValue(model, null);
                        if (!string.IsNullOrWhiteSpace(proValue))
                        {
                            Common.FileUpload.DeleteFile(proValue);

}
                        string fileName = Common.FileUpload.UploadFile(file);
                        pro.SetValue(model, fileName, null);
                    }
                }
}

public static string UploadFile(HttpPostedFileBase file)
        {

// Check if we have a file

if (null == file) return "";

// Make sure the file has content

if (!(file.ContentLength > 0)) return "";

string fileName = file.FileName;

string fileExt = Path.GetExtension(file.FileName);

// Make sure we were able to determine a proper

// extension

if (null == fileExt) return "";
            char DirSeparator = '/';
            string FilesPath = string.Format("{0}team{0}{1}{0}{2}{3}{0}", DirSeparator, DateTime.Now.Year, DateTime.Now.Month.ToString().PadLeft(2, '0'), DateTime.Now.Day.ToString().PadLeft(2, '0'));
            string PhysicalPath = HttpContext.Current.Server.MapPath(FilesPath);
            // Check if the directory we are saving to exists

if (!Directory.Exists(PhysicalPath))
            {

// If it doesn't exist, create the directory

Directory.CreateDirectory(PhysicalPath);

}

// Set our full path for saving

string path = PhysicalPath + fileName;

// Save our file

file.SaveAs(Path.GetFullPath(path));

// Return the filename

return FilesPath + fileName;

}

public static void DeleteFile(string fileName)
        {
            if (!string.IsNullOrWhiteSpace(fileName))
            {
                // Don't do anything if there is no name

if (fileName.Length == 0) return;

// Set our full path for deleting

string path = HttpContext.Current.Server.MapPath(fileName);

// Check if our file exists

if (File.Exists(Path.GetFullPath(path)))
                {

// Delete our file

File.Delete(Path.GetFullPath(path));

}
            }
        }