0

こんにちは、ユーザーが画像とドキュメント ファイルをアップロードできる FileUpload コントロールがあり、データベースからデータを取得するときにパスの URL をマイ データベースに保存しています。ファイルが .doc か画像かを確認したいis Doc ファイルを開きます 私の問題は、画像に対してどのように行うかです 画像であるかどうかを確認する方法 そして、画像コントロールに画像を表示する必要があります MVC3の画像コントロールでは機能しませんでした

ここに私のコントローラーコードがあります

       public ActionResult ViewAttachments(string AttachmentName)
    {
        try
        {
            AttachmentName = Session["AttachmentUrl"].ToString();
            var fs = System.IO.File.OpenRead(Server.MapPath(" "+ AttachmentName+" "));
            return File(fs, "application/doc", AttachmentName);
        }
        catch
        {
            throw new HttpException(404, "Couldn't find " + AttachmentName);
        }
    } 

ここで aspx ページを使用しています 使用する必要がある html と、ここで変更する必要があるコードは何か提案をお願いします

4

1 に答える 1

0

あなたができることは、拡張子の簡単なチェックであり、実行中の FILE 結果を返すか、単純な画像コントロールを保持する部分ビューを返します。

コードを拡張するには、次のようにします。

public ActionResult ViewAttachments(string AttachmentName)
    {
        try
        {
            AttachmentName = Session["AttachmentUrl"].ToString();
            var fs = System.IO.File.OpenRead(Server.MapPath(" " + AttachmentName + " "));
            var ext = Path.GetExtension(fs.Name);

            switch (ext)
            {
                case "doc":
                    return File(fs, "application/doc", AttachmentName);
                case "jpg":
                case "jpeg":
                case "png":
                    return PartialView("_imgControl", "http://www.mysite.com/downloads/" + AttachmentName + ext); 
            }                
        }
        catch
        {
            throw new HttpException(404, "Couldn't find " + AttachmentName);
        }
    }

次に、部分ビューで、モデル オブジェクト (この場合はサイトの画像パスの URL) を標準の html 画像コントロールに返すだけです。

于 2012-08-03T15:04:35.297 に答える