代码之家  ›  专栏  ›  技术社区  ›  Gup3rSuR4c

ASP.NET上传时连接重置

  •  1
  • Gup3rSuR4c  · 技术社区  · 14 年前

    我的应用程序有问题(ASP.NETMVC 2)无法上传文件(我的案例中的图像)。我改变了主意web.config文件接受高达20MB,而我正试图上传一个只有3MB的文件。

    应用程序本身有两种上传方式。最初的上传启动了一个画廊,然后一个额外的上传附加到画廊。

    最初的效果就像一个符咒,但附加的一个失败,没有任何解释。即使我重新上传的初始图像作为附加它仍然失败。

    我有点困在这上面,所以我很感激你们能提供的任何帮助。

    编辑

    如果我用Firebug“破解”表单并将其定向到初始上传Url,它就可以工作,但是当它定向到Url时,它应该发布到它失败了。。。

    编辑2

    [HttpPost, ValidateAntiForgeryToken]
    public RedirectToRouteResult PutGallery(    //  Move to Ajax
        [Bind(Prefix = "Gallery", Include = "ClubId,EventId,RHAccountId,RHCategoryId,Year")] Gallery Gallery,
        HttpPostedFileBase File) {
        if (ModelState.IsValid && (File.ContentLength > 0)) {
            if (Gallery.RHAccountId > 0) {
                Gallery.RHUser = this.fdc.RHAccounts.Single(
                    a =>
                        (a.RHAccountId == Gallery.RHAccountId)).RHUser;
            } else {
                if (!this.fdc.RHUsers.Any(
                    u =>
                        (u.User.Name == Gallery.Username))) {
                    if (!this.fdc.Users.Any(
                        u =>
                            (u.Name == Gallery.Username))) {
                        Gallery.RHUser = new RHUser() {
                            User = new User() {
                                Name = Gallery.Username
                            }
                        };
                    } else {
                        Gallery.RHUser = new RHUser() {
                            User = this.fdc.Users.Single(
                                u =>
                                    (u.Name == Gallery.Username))
                        };
                    };
                } else {
                    Gallery.RHUser = this.fdc.RHUsers.Single(
                        u =>
                            (u.User.Name == Gallery.Username));
                };
            };
    
            Image Image = new Image() {
                Gallery = Gallery
            };
    
            this.fdc.Galleries.InsertOnSubmit(Gallery);
            this.fdc.Images.InsertOnSubmit(Image);
            this.fdc.SubmitChanges();
    
            Files.Save(Image.ImageId, File);
    
            return RedirectToAction("Default", "Site");
        } else {
            return RedirectToAction("Default", "Site");
        };
    }
    
    [HttpPost, ValidateAntiForgeryToken]
    public RedirectToRouteResult PutImage(
        [Bind(Prefix = "Image", Include = "GalleryId")] Image Image,
        HttpPostedFileBase File) {
        Gallery Gallery = this.fdc.Galleries.Single(
            g =>
                (g.GalleryId == Image.GalleryId));
    
        if (File.ContentLength > 0) {
            this.fdc.Images.InsertOnSubmit(Image);
            this.fdc.SubmitChanges();
    
            Files.Save(Image.ImageId, File);
        };
    
        return RedirectToAction("Gallery", "Site", new {
            Category = Gallery.RHCategory.Category.EncodedName,
            GalleryId = Gallery.GalleryId
        });
    }
    

    旁注:

    卡西尼,VS2010的内置网络服务器,会是原因吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Gup3rSuR4c    14 年前

    controller 作为 controlls 在路线上。

    真的很烦人,所有这些才得到真正的错误,所以卡西尼号是部分错误。。。

    推荐文章