質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

解決済

1回答

2741閲覧

ASP.NET MVC5で現在ファイルダウンロードになっているものをプレビューとして表示したい

widget11

総合スコア221

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

0クリップ

投稿2019/02/28 08:29

環境:
VisauStudio2017
ASP.NET MVC5
EntityFramework6.2

//Controller public ActionResult DownloadFile(int id) { var t_document = sampleDB.t_document.Find(id); if (t_document == null) { return RedirectToAction("Index"); } string documentName = t_document.DocumentName; string documentPath = t_document.DocumentPath + Base64Encoder.Encode(t_document.DocumentId + "_" + documentName); var fileData = System.IO.File.ReadAllBytes(documentPath); string contentType = MimeMapping.GetMimeMapping(documentPath); var cd = new System.Net.Mime.ContentDisposition { FileName = HttpUtility.UrlEncode(documentName, System.Text.Encoding.UTF8), Inline = true }; Response.AppendHeader("Content-Disposition", cd.ToString()); return File(fileData, contentType); }
<!-- view --> @Html.ActionLink(document.DocumentName, "DownloadFile", new { id = document.DocumentId }, new { @title = "ファイルのダウンロード" })

以上の様な形でview部分でHtml.Actionlinkの第二引数にコントローラーのアクション名を指定することでDownloadFileメソッドを呼び出しております。

現状こちらのメソッドですと自身のローカルにpdfファイルがダウンロードされるという形になっているのですが、これをブラウザ上に新たにタブを表示しpdfを表示したいです。しかし方法が良く分からず困っております。
参考URL
こちらの記事を参考にしようと試みたのですが処理が良く理解できませんでした。どのようにすれば、ファイルダウンロードをプレビューとして表示できるでしょうか。宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ASP.NET MVC5で現在ファイルダウンロードになっているものをプレビューとして表示したい

その「プレビュー」というのはブラウザ上に .pdf ファイルを表示してクライアントが見れるようにしたいということですよね。であれば、ダウンロードしない限り表示することも見ることもできません。

以下のスレッドのようにすると一見「プレビュー」のように見えても、実際はダウンロードしているのですよ。

https://teratail.com/questions/176690

投稿2019/02/28 08:56

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

widget11

2019/02/28 09:37

なるほど。ダウンロード自体はされているのですか。 ダウンロードの定義を掴めていない面があるのですが、個人的にダウンロードは自分のローカルに何かしらのファイルを落とす行為だと思っていました。。。。 ちなみにローカルに落とさず、上のコードからブラウザ上の新しいタブに、pdfファイルを表示する方法ってどのようにすればよいのでしょうか。jsが必要な気はしてますが。。。 ご回答くださると幸いです。
退会済みユーザー

退会済みユーザー

2019/02/28 11:30 編集

> 個人的にダウンロードは自分のローカルに何かしらのファイルを落とす行為だと思っていました。。。。 見ることができるのならローカルに落ちてますよ。例えば画像。IE で言うとインターネット一時ファイルとしてとっくに落ちてます。それをファイルとして保存するには別の操作が要りますが、ダウンロードされているということには違いはないです。 > ちなみにローカルに落とさず、上のコードからブラウザ上の新しいタブに、pdfファイルを表示する方法ってどのようにすればよいのでしょうか。jsが必要な気はしてますが。。。 そんな方法はあるわけないです。ダウンロードしてないってことはあなたの PC には何も存在しないわけですから、何もないのに表示するなんてことは不可能です。
退会済みユーザー

退会済みユーザー

2019/03/01 02:52

「プレビュー」するのに巨大な .pdf ファイルをいちいちダウンロードしなければならないのが問題で、それを何とかしたいということであれば、プレビュー専用の小さな .pdf ファイルを別に作るか、1 ページ目だけの画像のサムネイルを作るかして、それを「プレビュー」に表示してはいかがですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問