MVCアプリケーションで作成アクションの一部として画像をアップロードする必要があります。ASP.NET MVCを使用した画像のアップロード
イメージはファイルサーバーに保存され、dbにはそのパスが含まれます。
> <input type="file" id="MyImage" name="MyImageName" />
私がアクセスし、コントローラのアクションでこれを保存する方法:
私は、ファイルを取得するためにfollwingタグを使用する予定?お使いのコントローラのアクションで
MVCアプリケーションで作成アクションの一部として画像をアップロードする必要があります。ASP.NET MVCを使用した画像のアップロード
イメージはファイルサーバーに保存され、dbにはそのパスが含まれます。
> <input type="file" id="MyImage" name="MyImageName" />
私がアクセスし、コントローラのアクションでこれを保存する方法:
私は、ファイルを取得するためにfollwingタグを使用する予定?お使いのコントローラのアクションで
私はすべての私のコントローラが継承するBaseControllerクラスでこれを置く:その後、私はコントローラに
// this just prefixes datetime as yyyyMMddhhmmss to the filename, to
// be use that no name collision will occur.
protected static String PrefixFName(String fname)
{
if (String.IsNullOrEmpty(fname))
{
return null;
}
else
{
return String.Format("{0}{1}",
DateTime.Now.ToString("yyyyMMddhhmmss"),
fname);
}
}
protected String SaveFile(HttpPostedFileBase file, String path)
{
if (file != null && file.ContentLength > 0)
{
if (path == null)
{
throw new ArgumentNullException("path cannot be null");
}
String relpath = String.Format("{0}/{1}", path, PrefixFName(file.FileName));
try
{
file.SaveAs(Server.MapPath(relpath));
return relpath;
}
catch (HttpException e)
{
throw new ApplicationException("Cannot save uploaded file", e);
}
}
return null;
}
:
savedPath = SaveFile(Request.Files["logo"], somepath);
それが必要な場合にもRequest.Filesを通じてファイルを取得することができ
Action(HttpPostedFileBase MyImageName) {
etc;
}
に出てくるはずです。
Request.Files空ですが、私の文字列フィールドファイル名が設定されています。私のビューHTMLは: – littlechris
戻り値?また、なぜ入力タグの値attrを設定していますか?フォームを再実行した場合(フォームが無効で、ユーザーが何かを修正する必要があるなど)、再利用できないことに注意してください。 – giorgian
ソート済みです。名前のタブがありません。ビューにはIDだけがあります。 :) – littlechris