-1

ASP.NET C# は初めてです。

ここで、画像の表示に問題が発生しました。ここで何をしているのか、どこで問題が発生したのかを説明します。

FileUpload コントロールを使用して 1 つのページを作成しています。他のフォーラムと同じように、プレビュー ボタンがあります。ユーザーがクリックすると、ユーザーが書いたものとアップロードされた画像が表示されます。

したがって、Preview.aspx という 1 つのページを作成するとしますが、それは空白です。次に、Administration というページがあります。そのページには、FileUpload コントロールがあります。テキストボックス、ラベル...その他のコントロールはほとんどありませんが、ここにはそれほど便利なものはありません。FileUpload コントロールに fuImage という名前を付けました。

イベント btnPreview_Click で書いたものをお見せします。

string img;   
if (fuImage.HasFile){
    fuImage.SaveAs(@"C:\Temp\" + fuImage.FileName);
    img = "<img alt=\"sd\" src=\"" + @"C:\Temp\" + fuImage.FileName.ToString() + "\"></img>";
    }else
    img = "";

    Functions.displayOnCommon = "<h3>" + tbSubject.Text + "</h3><hr/>"+img+"<p>" + tbPost.Text + "</p>";
    ClientScript.RegisterStartupScript(this.Page.GetType(), "", "window.open('Preview.aspx','Graph','height=400,width=800');",

ユーザーの画像をサーバーに保存し、その画像を使用してプレビューとして表示します。その Functions.displayOnCommon は、別の場所で宣言された単純な文字列であり、それほど必要ではありません。

Preview.aspx の舞台裏の C# コードを次に示します。

 protected void Page_Load(object sender, EventArgs e)
    {
        printPreview(Functions.displayOnCommon);
    }
void printPreview(string texts) {
        Response.Write("<div class=\"preview\">" + texts + "</div>");
    }

テキスト全体が表示されますが、画像は表示されません。私の悪い英語の説明で申し訳ありません。私は英語と ASP.NET C# を学んでいます。:D

ありがとうございました。

4

1 に答える 1

1

あなたのコードは紛らわしいですが、基本的にブラウザからローカルのサーバー ファイル パスを参照することはできません。

img = "<img alt=\"sd\" src=\"" + @"C:\Temp\" + fuImage.FileName.ToString() + "\"></img>";

代わりに、イメージをロードしてクライアントにストリーミングするサーバー エンドポイントを参照する必要があります。これを実現する方法はいくつかあります。

于 2012-11-12T16:49:10.293 に答える