2016-09-01 5 views
0

私は、ブラウザでpdfやwordなどのさまざまな種類のファイルを開く必要があります。最も受け入れられる解決策は、私が行ったことと同じように見えます。pdfとword docsのブラウザで強制的に表示する方法

public string GetDocument(Guid UserId, string Filename) 
{ 
    string mimeType = "application/pdf" 
    Response.AppendHeader("Content-Disposition", "inline; filename=" + fileName); 
return File(doc, mimeType); 
} 

私の疑問は、サーバー上の生ファイルをブラウザに提供できるようにするにはどうすればいいですか?私はバイトに変更する必要があると思います。そして、そのことワード用のファイル

はあなたが好きなものを使用することができ
+0

IIRCは、サーバー自体にオフィスを持っている必要があります。それは明らかに悪いことです。 – Kramb

+0

@Krambはいくつかのダムマイクロソフトの制限であると考えましたが、私の他のポイントにはどのようにファイルをバイトに変換するのでしょうか?それはまた実行する必要があります。 – rogue39nin

+0

@daveこれはMicrosoftの制限ではありません。それはウェブブラウザが動作する方法です。ブラウザには、Wordファイル用のネイティブレンダラがありません。ですから、Google Docsなどのものを調べたり、自分で作成したりする必要があります。いいえ、オフィスは必ずしも必要ではありません。 – mason

答えて

0

:filename変数には、完全なパスではありませんので、もし

public void GetDocument(Guid UserId, string Filename) 
{ 
    string mimeType = "application/pdf" 
    Response.AppendHeader("Content-Disposition", "inline; filename=" + fileName); 
    Response.WriteFile(fileName); 
    Response.End(); 
} 

注意を、Response.WriteFileは、ファイルへのフルパスを期待し、あなたの」それをマップする必要があります。

PDFの場合、ブラウザの内部ではほとんどのブラウザが開きます。他のファイルタイプの場合は、ブラウザがそのファイルタイプをインラインで表示できるかどうかによって異なる場合があります。

+0

その点にお答えいただきありがとうございます。その男らしい言葉docsとpdfs私はこのsecneraioで心配する必要があります – rogue39nin

0

サーバー側から強制することはできません。

一部のブラウザ(Chromeなど)ではPDFをうまく表示できますが、サーバーからレンダリングされたPDFは.pdfファイル拡張子がChromeに関連付けられている場合にのみChromeで開きます。ブラウザが実行されているマシンにアクセスすることなく、関連付けを変更することはできません。

私の知る限り、どのブラウザでもWord文書を直接開くことはできません。ビューアを使用する必要があります。

ビューアを使用すると、ページ内にPDFまたはWord文書を表示できます。これは、ファイルをダウンロードしてネイティブに表示するのと異なりますが、目的に合っている可能性があります。

少数の視聴者が自由に利用可能です。ここに2つあります。

Google docs viewer

Office Web Apps viewer

関連する問題