代码之家  ›  专栏  ›  技术社区  ›  Rodrigo Waltenberg

如何上传文件ASP.NETMVC2?

  •  2
  • Rodrigo Waltenberg  · 技术社区  · 15 年前

    我成功地管理了多个标题:

    漫画模型.cs:

    public class ComicViewModel
    {
        [Key]
        public int Id { get; set; }
    
        [Required(ErrorMessage="A data não pode ficar em branco.")]
        [DisplayName("Data")]
        public DateTime Date { get; set; }
    
        public IList<LocalizedTextViewModel> Titles { get; set; }
    }
    

    低calizedTextViewModel.cs:

    public class LocalizedTextViewModel
    {
        public CultureViewModel Culture { get; set; }
    
        [Required(ErrorMessage = "Este campo não pode ficar em branco.")]
        public string Text { get; set; }
    }
    

    CultureView模型.cs:

    public class CultureViewModel
    {
        public int Id { get; set; }
        public string Abbreviation { get; set; }
        public string Name { get; set; }
    
        public CultureViewModel() { }
    
        public CultureViewModel(Database.Culture culture)
        {
            Id = culture.Id;
            Abbreviation = culture.Abbreviation;
            Name = culture.Name;
        }
    }
    

    问题是我不知道如何管理漫画图片上传。我需要上传一个以上的图像,每一个引用它的语言。

    有人有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Manaf Abu.Rous    15 年前

    以下是上载多个文件的示例:

    Html:

    <% using (Html.BeginForm("Upload", "File", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {%><br />
        <input type="file" name="files" id="file1" size="25" />
    
        <input type="file" name="files" id="file2" size="25" /> 
    
        <input type="submit" value="Upload file" />      
    <% } %>   
    

    控制器:

    [HttpPost]
    public ActionResult Upload()
    {
        foreach (string inputTagName in Request.Files)
        {
            HttpPostedFileBase file = Request.Files[inputTagName];
            if (file.ContentLength > 0)
            {
                string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads")
                        , Path.GetFileName(file.FileName));
                file.SaveAs(filePath);
            }
        }
    
        return RedirectToAction("Index");
    }
    

    更新:获取一些关于上传文件的信息

    下面的示例演示如何获取提交的HttpPostedFileBase文件的名称/类型/大小/扩展名。

    string filename = Path.GetFileName(file.FileName);
    
    string type = file.ContentType;
    
    string extension = Path.GetExtension(file.FileName).ToLower();
    
    float sizeInKB = ((float)file.ContentLength) / 1024;
    

    假设你上传了这个文件 somePicture.jpeg 输出将为。

    filename  > somePicture.jpeg
    type      > image/jpeg
    extension > jpeg
    sizeInKB  > // the file size.