問題タブ [content-disposition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - IE7のバグ?- ファイルのダウンロード時にプロンプトを保存/開く - c# asp.net 3.5
JavaScript を起動して新しい aspx ページを開き、ユーザーがダウンロードできるようにファイルをブラウザにストリーミングするリンクボタンを含む aspx ページがあります。
XP SP3、IE 7、および FireFox 3.5 で開発および単体テストを行う場合、次のコード (キーは Content-Disposition タグの「添付ファイル」部分) を使用すると、ドキュメントを保存するか開くかを尋ねるダイアログ ボックスが表示されます。 、これはまさに私がやりたいことです:
これを Windows 2003 サーバーに展開して同じ aspx ページに移動すると、FireFox 3.5 は予想どおりに保存/開くオプションを正しく要求します。これが FF の既定の操作であるためです。
しかし、IE 7 でナビゲートしてクリックしてダウンロードすると、トップが 1/8 秒表示されるポップアップ ウィンドウが表示され、消えます。保存/開くプロンプトが表示されません。
IE 7 -> ツール -> インターネット オプション -> セキュリティ -> カスタム レベル -> ダウンロード
ファイルのダウンロードの自動プロンプトは無効になっています。有効にするためにチェックすると、保存/開くプロンプトが正しく機能します。
だから私の質問は.....誰かがこれを回避しましたか? キャッシュ、プラグマなどのさまざまなヘッダータグで機能すると人々が主張する多くのことを試しましたが、IEのダウンロードプロパティがデフォルトで無効になっているという事実を回避することはできません。
ajax - Web サービス経由でファイルを返す方法
私は、ユーザーがパラメーターを入力し、データをさまざまなファイル形式 (xml、html (画面上)、csv など) で返すオプションがある Web サービスに取り組んでいます。
サーバーがファイルの内容を生成する (そのため、実際のファイルがない) 場合、ファイルへの URL を返すことはできません。では、これを行うにはどうすればよいでしょうか。要素内のデータがバイナリであることを示す xml 属性があることは知っていますが、ブラウザがデータをファイルとしてダウンロードすることはありません。
Content Disposition
XML/Web サービスに相当するものはありますか?
非常に関連するメモについて:
javascript/AJAX はブラウザをトリガーしてファイルをダウンロードできますか? jsだけではファイルを「生成」する機能がないことを知っています(ブラウザが特定のファイル名のファイルとして文字列をダウンロードするという意味で)が、ajax関数がスクリプトを呼び出し、スクリプトの応答がヘッダーはダウンロードするように設定されていますか?
私はその最後の部分で実験しますが、確かな情報がすでにそこにあるかどうか知りたい.
詳細:
まず、回答してくれたすべての人に感謝します。すべての回答は本当に役に立ち、教育的でした。
回答にまたがるすべてのコメント/懸念/提案を結び付けるために、状況についてもう少し説明しようとするかもしれないと思いました.
社内スタッフの Web サイトのプロジェクトを管理しています。このプロジェクトは、主にスケジュールの表示と変更を扱います。基本的に同じデータを MySQL DB に照会する、少なくとも 4 つの異なる PHP スクリプトがあります。クエリは、コンテキストによって若干異なります。あるケースでは、割り当てごとにグループ化された毎日のスケジュールを取得し、別のケースでは、1 週間のスケジュールを照会して人ごとにグループ化します。さらに別の例では、たった 1 人の人の週間スケジュールを照会します。1 人、1 日、またはポジションごとの時間ごとの合計などのデータを出力するものもあれば、DB に格納されているものだけを出力するものもあります。
私はプロジェクトの特定の側面について罪悪感を感じ始めました. 明らかに、多くのデータ フェッチを 1 つの組み込みスクリプトに組み合わせることができます。結果を処理するには、おそらくオブジェクト指向の PHP を使用する必要があります。そして、私は、データが安全でセキュアであること、および DB へのストレスが最小限に抑えられ、最適化されていることを確認するよりも、この混乱を機能させることに重点を置いてきました。クエリが最適化されているかどうかを本当に知る方法さえわかりません。
そして、上記の罪悪感に加えて、私は本当に混乱し始めました. 物事を整理しようとして、うまく機能していたものを1つの修正で台無しにする結び目に巻き込まれていることに気づきました。
そのため、プロセス全体を簡素化し、データのフェッチ方法に関するロジック (API でさえも) を強制する Web サービスを作成することが良い解決策であると考えました。最終的に私が主任開発者ではなくなったときに引き継ぎます。さらに、サイトのバックエンドのアップグレードとシフトの両方 (Cold Fusion を使用する Windows サーバー上にある日もあるかもしれませんが、私はその考えに身震いします) と、接続したい他のソフトウェアのために、全体の移植性を高めます。データベースと。
しかし、ここにこすりがあります:
このプロジェクトの全体的な起源は、以前のスケジューリング ソリューションが、私たちが使用する非常に高価なエンタープライズ レベルのスケジューリング ソフトウェアによって生成された、非常に醜く非意味的な HTML レポートをアップロードすることであったという事実に基づいていました。この忌まわしい HTML レポートとそれを生成したソフトウェアで私たちが抱えていた最大の.ics
問題は、Outlook や Google カレンダーにインポートできる「icalendar」ファイルのオプションがないことでした。私は、これらのひどいレポートを ics ファイルに変換する方法を見つけることを個人的な使命としており、PHP、正規表現、および MySQL を学び始めた理由についての話を始めました。
したがって、まだ退屈して眠っていない場合は、Web サービスがスケジュール プロセスを簡素化および合理化するための最良のオプションだと思いますが、データの最も価値のある部分を取得するために単純な PHP/MySQL を使用する必要がある場合(カレンダーファイル)それから私はすべてを捨てて、結び目を解き続けたいと思っています.
ところで、Web サービスを使用するスクリプトで ics ファイルを作成できることと、ユーザーが AJAX を要求している場合は AJAX を簡単に回避できることは理解しています。繰り返しますが、これをより明確にしてくれたすべての人に感謝します。HTML/JS/PHP とデータベースの間の明確なパーティションの感覚を持たせるために、Web サービスが DB によって返されたすべてを可能な限り処理することを望んでいます。
再度、感謝します!
content-disposition - Content-Disposition ファイル名のセミコロン
IE8 でセミコロンを含むファイル名をダウンロードしようとすると問題が発生します。
attachment.File.FileName = "Test;Test;Test.txt" と仮定すると、
FF 3.5: 「Test;Test;Test.txt」という名前のファイルを保存/開くように求められます。これは望ましい結果です。
IE8: 「Test」という名前のファイルを保存/開くように求められます。
IE8 で目的の結果を得る方法を理解する必要があります。
asp.net - 非同期 ASP.NET ページからの複数の順次非同期 Web サービス呼び出し?
非同期 ASPX ページから n 回の非同期 Web サービス呼び出しを行う必要があります。
各 WS 呼び出しは、バイナリ ファイルの一部を取得します。次に、コードはファイル ブロックをページの応答ストリームに出力します。
各 getFileBlock は、非同期にしたい Web サービス呼び出しです。ただし、これらの呼び出しを特定の順序で行う必要があります。
これを実装する方法について何か提案はありますか?
pdf - ブラウザ内のPDFレポートビュー
BIRTとphpjavabridgeを使用してこのレポートを作成しました
レポートは、Adobe Acrobatプラグインをトリガーしたため、InternetExplorer8.0内で完全に表示されました。問題は、MozillaFirefox3.5.4とGoogleChrome4.0.233内でレポートを開いたときに、Adobe Acrobatプラグインをトリガーする代わりに、PDFファイルのバイナリ文字列コンテンツが表示されたことです。
htdocフォルダーにpdfファイルを入れてFirefoxとChromeから呼び出すことでこれを確認しましたが、問題なく動作しました。しかし、なぜヘッダーがレポートで機能しないのでしょうか。
*また、ヘッダーがIE 8.0でのみ機能するのはなぜですか?レポートをすべての主要なブラウザで表示する必要があります
asp.net - UNC共有を使用したResponse.TransmitFile()(ASP.NET)
このページのコメント:
http://msdn.microsoft.com/en-us/library/12s31dhy%28v=VS.90%29.aspx
..TransmitFile()はUNC共有では使用できないことを示しています。私の知る限り、これは事実です。試行すると、イベントログに次のエラーが表示されます。
推奨される代替方法はWriteFile()を使用することですが、ファイルをメモリにロードするため、これには問題があります。私のアプリケーションでは、ファイルは> 200MBであるため、これはスケーリングされません。
ASP.NETに、ユーザーにファイルをストリーミングするための方法はありますか?
- スケーラブル(ファイル全体をRAMに読み込んだり、ASP.NETスレッドを占有したりしません)
- UNC共有で動作します
ネットワークドライブを仮想ディレクトリとしてマッピングすることは、私たちの選択肢ではありません。ファイルをローカルWebサーバーにもコピーしないようにします。
ありがとう
http - 「名前を付けて保存」ダイアログを強制せずに応答ファイル名を設定する方法
content-type
適切なヘッダーを設定する応答でストリームを返しています。私が探している動作はこれです:
ブラウザーが特定のコンテンツ タイプのコンテンツをレンダリングできる場合は、それをブラウザー ウィンドウに表示する必要があります。
ブラウザがコンテンツをレンダリングする方法を認識していない場合、「名前を付けて保存」ダイアログが表示されます。ファイル名は、応答で提供されたものでなければなりません。
問題は、Content-Disposition
ヘッダーを次のように設定した場合です。
"添付ファイル; ファイル名="myfile.txt""
ブラウザは常に「名前を付けて保存」ダイアログを表示します。
を設定しないと、「名前を付けContent-Disposition
て保存」ダイアログで使用されるファイル名は、私の場合は機能しない URL のものになります。
に設定Content-Disposition
してみましinline
たが、結果は同じです。
jquery - 投稿されたフォームの準備完了イベント
iframe にフォームがあります。このフォームが投稿されると、(フォーム情報に基づいて) ファイルがユーザーに返されます。このファイルは content-disposition:attachment を使用して返されるため、ファイル保存ダイアログのみが表示されます。ファイルがユーザーに返されたら、JavaScriptで何かをしたいと思います。$(iframe).ready(); を付けてみました。フォームが投稿された後にiframeに送信されますが、すぐに消えます。
注目に値する: $(iframe).load(); どちらも機能しません。トリガーされることはありません。フォーム ポストは、技術的には iframe の 2 番目の読み込みです (最初の読み込みは iframe にフォームを表示します)。
何か案は?
php - PHP - Content-Disposition で完全なディレクトリ パスを設定する方法は?
ファイル名をダウンロード ページに渡しています。
すなわち somefile.xls
ダウンロード ページでは、完全なディレクトリ パスがファイル名に追加されます。
すなわち c:\temp\somefile.xls
問題は、ヘッダーの「Content-Disposition」の設定が機能しないことです。ダウンロードするファイル名は、ディレクトリとファイル名の完全なパスです。 すなわち c_temp_somefile
Content-Disposition はフル パスを処理できますか?
スクリプトでファイルを適切にダウンロードするにはどうすればよいですか?
コードは次のとおりです。
更新されたコード(回答から):
asp.net - ASP.NET を使用して画像/Word 文書をダウンロードする
次のコードを入れると:
Page_Load に入ると、画像をダウンロードするためのダイアログ ボックスが表示されます。しかし、同じコードをサブルーチンに入れると:
MsgBox (テスト用) を取得しましたが、イメージをダウンロードする機能がありません。何か案は?