誰かが以下の私のコードを変更して、これを私が望むことを実行する方法を正確に示すことができることを願っています。
次のアクションに投稿するHTMLフォームがあります。
public ActionResult Create(string EntryTitle, string EntryVideo, HttpPostedFileBase ImageFile, string EntryDesc)
{
if (Session["User"] != null)
{
User currentUser = (User)Session["User"];
string savedFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Path.GetFileName(ImageFile.FileName));
ImageFile.SaveAs(savedFileName);
Entry newEntry = new Entry();
newEntry.Title = EntryTitle;
newEntry.EmbedURL = EntryVideo;
newEntry.Description = EntryDesc;
newEntry.ImagePath = savedFileName;
newEntry.UserId = currentUser.UserId;
db.Entries.Add(newEntry);
db.SaveChanges();
}
return RedirectToAction("MyPage", "User");
}
これにより、イメージがルートソリューションディレクトリに保存されます(または、許可がなく、代わりに例外がスローされます)。
私がやりたいことは次のとおりです。
1.)ファイルサイズが最大値を下回っていることを確認します。たとえば、今のところ500kbとします。
2.)ファイルサイズに問題がない場合は、次のディレクトリに保存します
mywebsite.com/uploads/<userid>/<entryid>/entry-image.<jpg/png/gif>
別のファイル拡張子(.jpeg、.jpg、.png、.gif)を受け入れたいので、ファイルの名前を変更する方法がわかりません。または、上記のように正しいディレクトリに配置する方法がわからない。または、ファイルサイズを検証する方法。ユーザーがIEを使用している場合にのみ、JavaScriptでしか検証できないようです。