2016-05-19 30 views
0

私はASP.NET MVC 4.5.2でアップロード機能を持っています〜/ Uploads /に画像をアップロードする方法。私は次のコードで画像を表示したい場合はasp.netで相対パスを絶対パスに置き換えます。

<img src="@item.ImagePath" alt="Image" /> 

私が取得:

<img src="c:\users\yanni\documents\visual studio 2015\Projects\MyProject\MyProject\Uploads/references/postfinance.PNG" alt="Image" /> 

私の質問は、私はC置き換えることができます方法を知っている:\ユーザーを...〜」で/Uploads/filename.ext "

は、多分それは指定することが重要です:C:\ユーザー\ヤニープロジェクト\ Visual Studioの2015 \ドキュメント\ \ MyProjectと\ MyProjectのアップロード/参照\/postfinance.PNG

私のデータベースでは、私は完全なリンクを持っていますこのControllerCodeによって参照:あなたの助けを事前あたり

references.ImagePath = HttpContext.Request.PhysicalApplicationPath + "Uploads/references/" + ImagePath.FileName; 
ImagePath.SaveAs(references.ImagePath); 

感謝を

答えて

0

ソリューションは、設立:

public ActionResult Create([Bind(Include = "ID,Compagny,Website,Logo")] References references, HttpPostedFileBase ImagePath) 
     { 
      if (ModelState.IsValid) 
      { 
       var fileName = Path.GetFileName(ImagePath.FileName); 
       references.ImagePath = "/Uploads/References/" + fileName; 
       ImagePath.SaveAs(Server.MapPath("~/Uploads/References/" + fileName)); 

       db.References.Add(references); 
       db.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 

      return View(references); 
     } 
0

あなたは、あなたが「〜/アップロード」をアップロードすると言う、なぜ私は本当に得ることはありませんが、後であなたがアップロード/ 」としてのImagePathを保存参照/... "なぜあなたはそのディレクトリを追加しますか?そこにそのファイルを移動しますか?

一般的には、イメージパスをデータベースに相対パスとして保存する方が良いので、いつでもプロジェクトを再配置できます。

var fileName = "~/Uploads/" + ImagePath.FileName; 
references.ImagePath = fileName; 

そして、あなたが今まで(プロジェクトがサーバー上に配置されている場所によって異なります)サーバー上のイメージの絶対パスが必要な場合、あなたは

var realPath = Server.MapPath(fileName); 

によって、コントローラにそれを得ることができ、このおかげでアプローチは、このコードになります。

<img src="~/Uploads/postfinance.PNG" alt="Image" /> 

<img src="@item.ImagePath" alt="Image" /> 

はにレンダリング何をしたいおそらく

...

+0

ありがとうございます。 あなたのコードでは、私はこのエラーを受け取ります: 追加情報:SaveAsメソッドは、ルートに関連するパスを要求するように設定されています。〜/ Uploads/postfinance.PNG 'パスは、ルート。 –

1

このような何かを試してみてください:

<img src="@Url.Content("~/Uploads/Image.png")" /> 

あなたは電流に応じた画像をフェッチする場合要求

<img src="@Url.Content("~/Uploads/" + FileName)" /> 

ファイル名画像の名前だけです。

<img src="@Url.Content("~/Uploads/" + System.IO.Path.GetFileName(@item.ImagePath))" /> 
関連する問題