2016-06-22 6 views
0

データベースからファイル名を取得すると、iframeでドキュメントファイルを表示する方法データベーステーブルの名前がFileで、ビューモデルがMyFileModelです。データベースからファイル名を取得すると、iframeのドキュメントファイルをどのように表示できますか?

public ActionResult Create(HttpPostedFileBase file) 
     {   
     try 
     { 
      if (ModelState.IsValid) 
      { 
       db.Files.Add(new File() 
       { 
        FileName = Path.GetFileName(file.FileName) 
       }); 
       db.SaveChanges(); 
      } 
     } 
     catch (Exception) 
     { 
      var error = "Sorry not save"; 
     } 
     return Content(""); 
    } 

    public FileStreamResult GetPDF() 
     { 
      var file = db.Files.Single(s => s.Id == 1); 
      FileStream fs = new FileStream(Server.MapPath(file.FileName), FileMode.Open, FileAccess.Read); 
      return File(fs, "application/pdf"); 
      //return View(Server.MapPath("~/File/SegmentAdd.txt")); 
      //return File(fs,"text/plain"); 
     } 

    <div id="frame"> 
    <iframe src="@Url.Action("GetPDF","Home")" width="900px" height="500px"></iframe> 
    </div> 
` 
+0

ファイル名のフィールドに保存されている内容が、アップロードされたファイルの名前または完全なパスのみを知っているかもしれません。あなたが上記のケースでファイル名のみを保存している場合、あなたは私が推測するエラーを取得します。 –

+0

ファイル名を保存しました。実際には、ファイル名で文書ファイルを保存します。 –

+0

物理ファイルをファイルシステムに保存していますか? –

答えて

1

私が投稿している回答はすべて前提であり、あなたの解決策の明確なイメージはありません。 物理ファイルを保存していない場合は、フォルダに保存してからDBに名前を保存するか、パス全体をDBに保存してみてください。

方法1

フォルダ内のファイルを保存している場合が言うファイル最良の方法は、web.configファイル(ルートにある.configファイル)にキーを追加することですその後、

<add key="FilePath" value= "~/File/"/> 

public FileStreamResult GetPDF() 
     { 
      var file = db.Files.Single(s => s.Id == 1); 
      string fileName = file.FileName; 
      string filePath = ConfigurationManager.AppSettings["FilePath"] + fileName; 
      FileStream fs = new FileStream(Server.MapPath(filePath), FileMode.Open, FileAccess.Read); 
      return File(fs,"text/plain"); // "text/plain" if your file content-type is text file 
      //return View(Server.MapPath("~/File/SegmentAdd.txt")); 
      //return File(fs,"text/plain"); 
     } 
を次のようにあなたのC#コードを修正し、次のように

方法2

あなたは全体のパスを保存している場合、それははるかに簡単にコーディングし、あなたは、あなたが書いたコードを変更するだけで同じで先に行く必要がないことができます。

希望すると、これが役に立ちます。

+0

こんにちはJayaraj、 申し訳ありませんが、私は何を望んでいるか言及していませんでした。私は物理的なファイルをデータベースに保存したいです。 ありがとうございます。 –

+0

物理的なファイルからデータベースへの手段ですか?私はあなたを得ることができませんでした。バイト単位ですか? –

+0

物理ファイルをデータベースに保存する方法はありますか?バイトまたはその他の方法 どのように知っていますか? –

0

私はpdfが開く方法は、ユーザーが使用するブラウザに依存していると思います。

おそらく:https://pdfobject.com/が必要です。

幸運を祈る!

関連する問題