ファイル (私の場合は画像) をアップロードできないアプリ (ASP.NET MVC 2) で問題が発生しています。最大 20 MB を受け入れるように web.config を変更し、わずか 3 MB のファイルをアップロードしようとしています。
アプリ自体には、アップロードする方法が 2 つあります。ギャラリーを開始する最初のアップロードと、ギャラリーに追加するための追加のアップロード。
最初のものは魅力のように機能しますが、追加のものは説明なしで失敗します. 最初の画像を追加として再アップロードしても失敗します。
私はこれに少し行き詰まっているので、皆さんが提供できる助けをいただければ幸いです。
前もって感謝します!
編集
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
});
}
サイドノート:
VS 2010 の組み込み Web サーバーである Cassini が原因でしょうか?