前提・実現したいこと
ASP.NET DBに表示したい画像の絶対パスを持っているのですが、それを取得して画像を表示したいと思っています。
発生している問題・エラーメッセージ
//Model.Fig1には以下のような画像の絶対パスがあります //C:\Users\user01\Desktop\画像1.jpg <img src=Model.Fig1 alt="画面1">
上記コードは画像を表示したいViewです。
このような書き方をすると、altの値が画面に出力されています。
補足情報(FW/ツールのバージョンなど)
VS2019
ASP.NET Core MVC
Core Version 3.1.1
> ASP.NET DBに表示したい画像の絶対パスを持っているのですが、
その「絶対パス」とは何ですか? 前にも言いましたけど、回答者にエスパー能力を期待しないで、ここに書いてあることしか知り得ない第三者に分かるよう具体的に書きましょう。
ブラウザ側で実際に展開されているHTMLの当該部分はどうなっていますか?
質問で書かせていただいた画像とは異なりますが、ブラウザ側で確認すると「https://localhost:44382/C:/Users/user/デスクトップ/IMG_2460.JPG」となっていました。
一度だけ画像が表示されたことはあったのですが、その時は「file:///C:/Users/user/デスクトップ/IMG_2460.JPG」となっていました。
何の違いで変わるのか分かりません。
質問者さんの言う「絶対パス」とは http で始まる URL のことではなくて、Windows OS のファイルシステムのパスで、DB にあるのは質問者さんの開発マシンの個人フォルダにある .jpg 画像ファイルのパスの文字列のようですが、そうなんですか?
もしそうだとすると、それを img 要素の src 属性に設定するのは普通はあり得ない話です。
インタ―ネット / イントラネット上のユーザーがブラウザで質問者さんが作ったサイトを見るのですよね。それは他人の PC からブラウザ経由で質問者さんの PC の個人フォルダの画像を見ようとしているようなものです。そんなことができると思いますか?
一体全体何がしたいのでしょう?
したいことは、サイトを開いたときにサーバー上にある画像を表示することです。
> サーバー上にある画像
具体的にどこですか? wwwroot 下なのか、そこではなくて web サーバーのどこかの別フォルダなのか? リモートにあるファイルサーバーなのかなど、それによって話がいろいろ違ってきます。
webサーバーの別のフォルダです。
wwwroot 下の意味わかります? Visual Studio のソリューションエクスプローラーを見てください。そこにありますよね。それのことです。web サーバーの別フォルダに配置できるなら、そこに配置することもできるのでは?
「wwwroot 下」と「web サーバーの別フォルダ」では難易度が数倍(知識とスキルが十分でないと越えられない壁かも)違ってきます。可能であれば「wwwroot 下」一択です。前のスレッドの時のように茨の道の方を選ばないよう考えてみてください。
質問者さん、また無言になってしまいましたが、どうするのですか? 考え中ならちょっと待ってくれと書くとか、あくまで「web サーバーの別フォルダ」ということならその旨書くとか、両方教えて欲しいならそう書くとか、ギブアップならそう宣言してクローズするとかしていただけませんか。無言は NG です。
遅くなりすいません。wwwroot下に変えようと思います。
回答1件
あなたの回答
tips
プレビュー