[解決済み] MVC 4での画像のアップロード/表示
2023-04-25 03:46:17
質問
Entity Frameworkを使用してデータベースから画像をアップロード/表示する方法について、ステップバイステップのチュートリアルを知っている人はいますか?私はコードスニペットをチェックアウトしましたが、私はまだそれがどのように動作するかについて明確ではありません。私はアップロードフォームを書くことを除けば、私は失われたので、コードはありません。任意の(そして私は任意の意味での)助けは非常に感謝されます。
余談ですが、なぜこのトピックをカバーする書籍がないのでしょうか?私は Pro ASP.NET MVC 4 と Professional MVC4 の両方を持っていますが、それらにはこのトピックについて何の言及もありません。
どのように解決するのですか?
下記をご覧ください。
@using (Html.BeginForm("FileUpload", "Home", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
<label for="file">Upload Image:</label>
<input type="file" name="file" id="file" style="width: 100%;" />
<input type="submit" value="Upload" class="submit" />
}
コントローラにはアクションメソッドが必要です。
HttpPostedFileBase
;
public ActionResult FileUpload(HttpPostedFileBase file)
{
if (file != null)
{
string pic = System.IO.Path.GetFileName(file.FileName);
string path = System.IO.Path.Combine(
Server.MapPath("~/images/profile"), pic);
// file is uploaded
file.SaveAs(path);
// save the image path path to the database or you can send image
// directly to database
// in-case if you want to store byte[] ie. for DB
using (MemoryStream ms = new MemoryStream())
{
file.InputStream.CopyTo(ms);
byte[] array = ms.GetBuffer();
}
}
// after successfully uploading redirect the user
return RedirectToAction("actionname", "controller name");
}
アップデート1
jQuery を使って非同期でファイルをアップロードしたい場合は、次のようにしてください。 この記事 .
サーバー側を処理するコード(複数アップロードの場合)です。
try
{
HttpFileCollection hfc = HttpContext.Current.Request.Files;
string path = "/content/files/contact/";
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
if (hpf.ContentLength > 0)
{
string fileName = "";
if (Request.Browser.Browser == "IE")
{
fileName = Path.GetFileName(hpf.FileName);
}
else
{
fileName = hpf.FileName;
}
string fullPathWithFileName = path + fileName;
hpf.SaveAs(Server.MapPath(fullPathWithFileName));
}
}
}
catch (Exception ex)
{
throw ex;
}
このコントロールは画像名も返すので(javascriptのコールバックで)、それを使ってDOMに画像を表示することができます。
アップデイト2
別の方法として MVC 4での非同期ファイルアップロード .
関連
-
[解決済み] Matlabでどのようにimwarp転送ポイント?
-
[解決済み] ピンクの背景のアイコンを透明にするには?
-
[解決済み] kubernetesでデプロイメント/イメージを削除する方法
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Markdownで画像サイズを変更する
-
[解決済み] HTMLでBase64画像を表示する方法
-
[解決済み] [Solved] How do you stretch an image to fill a <div> while keeping the image's aspect-ratio?
-
[解決済み] SVGはビットマップイメージの埋め込みに対応していますか?
-
[解決済み] Flutter Networkの画像が円形のアバターに収まらない
-
[解決済み] Node.js: ImageMagick を使わずに画像のリサイズを行う。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] kubernetesでデプロイメント/イメージを削除する方法
-
[解決済み] 平均像減算の仕組みは?
-
[解決済み] Markdownで画像サイズを変更する
-
[解決済み] イメージからDockerfileを生成するには?
-
[解決済み】JPGとJPEGの画像フォーマット比較
-
[解決済み] OpenCVで画像の類似性をチェックする
-
[解決済み] Facebookでプレビューとして表示されるWebサイトの画像を設定するにはどうすればよいですか?
-
[解決済み] GitLabマークダウンで、カレントディレクトリにある画像を./ドットスラッシュで始まるパスで参照するにはどうすればよいですか?
-
[解決済み] なぜエラーが発生するのですか?「JPEGファイルではありません: 0x89 0x50で始まります" [閉じる]
-
[解決済み] Mac OSXでターミナルを使用して画像のサイズを変更する方法は?