2010-08-25 73 views
1

我遇到了我的应用程序(ASP.NET MVC 2),我无法上传文件(在我的情况下的图像)的问题。我已经改变了web.config接受高达20MB,我试图上传一个只有3MB的文件。ASP.NET连接重置上传

该应用程序本身有两种上传方式。最初的上传可以启动一个Gallery,然后附加一个上传来添加到一个Gallery。

最初的作品像一个魅力,但追加的失败,没有解释。即使我重新上传最初的图像作为追加它仍然失败。

我有点被困在这,所以我将不胜感激你们可以提供任何帮助。

在此先感谢!

编辑

如果我“黑客”的形式与萤火虫并将其引导到初始载URL它的工作原理,但是当它引导到应该发布到失败的网址...

EDIT 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 
    }); 
} 

旁注:

能卡西尼,VS 2010的内置Web服务器,是原因?

+1

我们需要看到一些代码来帮助你解决这个问题。主要原因是在处理上载和附加的代码之间*必须有*不同。确定是什么区别以及它如何影响上传将是这个问题对你的答案=) – Rob 2010-08-25 08:31:44

+0

好吧,我在上面编辑过的代码,但我不认为它会帮助你,因为我没有认为路由受到攻击,因此我认为代码根本没有被执行......但是我可能是错的...... – Gup3rSuR4c 2010-08-25 08:45:39

回答

0

好吧,所以我想通了,它只是在我的机器+配置上本地安装了很长时间的IIS,让它告诉我在路由中拼写为controllercontrolls

真烦,它把所有的,要得到真正的错误,所以卡西尼是部分责任...

所以,这个故事的寓意是,请确保您正确拼写的一切。