問題タブ [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.
php - PHP で設定された Content Dispostion ヘッダーが Firefox で機能しない
データを汎用スクリプト (フォームが読み込まれるのと同じページ、index.php) に送信するフォーム ボタンがあり、適切な POST 変数がそのスクリプトに送信されると、ユーザーが印刷する PDF が返されます (読み込まれた関連するフォーム情報、およびその他の DB 情報など)。
問題は、ヘッダーで content-type と content-disposition を何に設定しても、Firefox がユーザーにドキュメントを保存するか開くように求めることです。
Firefox が独自の Adobe Reader プラグインを「Open With」オプションとして提供していれば、これはそれほど悪くはありませんが、実際の Adobe Reader アプリしか提供していません (認証やデフォルトのブラウザー設定が制御できないなどの問題が発生します)。 )。
サーバー側で (.htaccess ファイルまたは実際のヘッダーのいずれかで) 変更する必要があるものはありますか?Firefox に、応答が application/pdf MIME タイプの PDF であり、ファイルをサーバー生成のストリームではなく、PDF へのハード リンクでしたか?
最後に一つだけ...
Content-Disposition を「インライン」に設定すると、Firefox は Firefox でファイルを開きますが、最初にページを「index.php」としてロードする前のみです。ユーザーが PDF に到達したら、[戻る] ボタンをクリックしようとすると、データを送信したものではなく、PDF をロードした index.php にヒットします。Mac 側では、Firefox は PDF をロードせず、代わりに「index.php」を添付ファイルのように保存または開くようにユーザーに促します。
ありがとう!
現在、私が試したコード(この順序で):
これは添付ファイルとして扱われるため、Firefox の Mime-Type ルールはファイル拡張子ルールでは無視されます。
これは機能しますがindex.php
、最初にロードしてからファイルをロードします。これは見栄えが悪く、混乱を招き、pdf と元のページの間に余分な要求 (したがって余分なページ) を配置します。
これは (Firefox の場合) と同じように扱われるattachment
ため、デフォルトで Adobe Reader プラグインを使用するのではなく、Adobe Reader で保存または開くように求めるプロンプトのみが表示されます。
また、最後の例では、コンテンツの配置としてと の両方を試したことにも注意してpdf
ください。application\pdf
変わりはない。
まだ試していない唯一のことは、タイプを ocet/stream に設定することです。指を交差させますが、息を止めません。
c# - コンテンツ配置の問題
メディア ファイル (.avi fe) を格納する SQL データベースがあります。aspx ページ (VIDEOPAGE) のビデオをバイト配列として抽出し、これを呼び出す別の Web ページに送信し (この方法である必要があります)、Windows Media Player コントロールを提示する html オブジェクト タグを使用してビデオを表示します。
私が使用する構文は次のとおりです。
これは、すべての mpeg および wmv ファイルでは問題なく動作しますが、avi ファイルでは失敗します!! contentType 変数には、正しいコンテンツ タイプが含まれています (これは、次の理由でわかっています。
オブジェクト タグを使用せず、単純にデータベースから avi ファイルと上記の構文を使用して VIDEOPAGE ページをロードすると、「開くか..」ダイアログ ボックスが表示され、[OK] をクリックすると、ビデオが表示されます。 WMP で表示します。
と もに変更してみましContent-Disposition
た。何もない..hidden
inline
何か案は?
javascript - Content-Disposition:attachmentを使用してブラウザで待機カーソルをリセットする
次のコードはうまく機能します:
ただし、応答が添付ファイルを返す場合(たとえば、ReportViewerコントロールからのPDF):
EndRequest()は起動せず、「progress」カーソルはリセットされません。Javascript呼び出し、例えば
トリックを実行しますが、コンテンツの配置のために不可能です。これを正しく行う方法を考えられますか?PDFのレンダリング中に待機カーソルを表示し、PDFが表示されたら通常のカーソルに戻りますか?ここではC#コンテキストを想定していますが、問題は言語またはプラットフォーム固有ではありません。
php - Content-disposition を使用してファイルの内容を表示: ソケットを使用した添付ファイル
動的 .csv ファイルの内容を解析したいと考えています。ただし、このコード (明らかに duff ファイル名など):
...ファイルをダウンロードするだけです。
コマンド ラインで openssl を使用すると、まったく同じ要求を入力して、次の応答ヘッダーを返すことができます。
ファイルが自動的にダウンロードされるのを避けるために、 を使用して最初の文字を切り捨てようとしましsubstr
た。これは、ブラウザーが によって出力さfgets
れた応答を現在のドキュメントの一連のヘッダーとして認識できるようにするためです。それはうまくいきませんでした。同じ考えを追求して、ソケットを開く前にたくさんの改行を挿入しようとしましたが、どちらもうまくいきませんでした。
私の2つの質問は次のとおりです。
- ブラウザがファイルをダウンロードする必要があると考える理由は何ですか?
- どうすればそれを止めることができますか?
私はこれまで Chrome しか使っていませんでしたが、なぜそれが違いを生むのかわかりません。
どうもありがとう、アンドレアス
internet-explorer - IE と Content-disposition インライン vs. 拡張トークン
前文
したがって、IE はMime-Type スニッフィングを行います。その部分は古いニュースです。
これに対抗する方法の提案は、「コンテンツ タイプの IE トラストを提供する」(つまり、テキスト/プレーンまたはアプリケーション/オクテット ストリーム以外のもの) または「ファイルの先頭に余分なデータを追加する」という行に沿っている傾向があります。それは間違いなくあなたが提供しているタイプです。
現在、メッセージの添付ファイル (電子メールなど) を許可し、場合によってはインライン (電子メールなど) で表示できるようにする必要があるアプリケーションに取り組んでおり、XSS ベクトルをクローズアップしたいと考えています。IE の MIME スニッフィング (パッチを適用していない IE6 では、IE6/Win2000 などでサポートする必要があります) は、これらのベクトルの 1 つです。htmltext/plain
コンテンツを含むファイルは html としてトリガーされます。この時点では、再コーディングはオプションではありません。ユーザーが提供した添付ファイルを変更できるのは、ファイルの悪意にまったく疑いがなく、誰かが HTML をテキストとして送信したい場合に限られます。
現在、Microsoft の MSDN の記事は、宣伝されているよりも状況を修正する方が簡単である可能性があることを示唆しています。
Internet Explorer が 指定され たContent-Typeを認識していて、Content -Dispositionデータがない場合、Internet Explorer は「MIME スニフ」を実行します [...]
すごい!
IEも、それを確実にインストールするための現在の手段も持っていないことを除いて(これはWeb開発者にとってかなり悲しい状態であることを認識しています。これをすぐに修正したいと思っています)、これは灰色の理論であり、私にはまったく見えませんいずれかの方法で確認します。地元の情報筋によると、行はごちゃごちゃしているとのことです - IE は、 Content-Disposition: inline /であり、 <default>
-Typeの好みに十分に具体的でないものは何でもスニッフィングします。
しかし、x-* ( RFC の 'extension-token' ) はどうでしょうか?
ブラウザーがContent-Disposition:<extension-token>
を処理する方法をグーグルで検索しようとしても、何も得られませんでした (私のやり方が間違っているだけかもしれませんが、最近、グーグルに対する私の理解が著しく低下しています)。有望に見える質問を 1 つ見つけましたが、スレッド作成者側の誤解であることが判明しました。
質問
Content-Disposition: inlineを明示的に渡すと、IE は本当に Mime を盗聴しますか?
もしそうなら: ブラウザがContent-Disposition: を<extension-token>
処理する方法を知っている人はいますか?
彼らが私の目的のために無害な方法でこれを行う場合、それがデフォルトと同義であると推定することによって(事実上「インライン」ですが、どこにも定義されていないと聞きましたか?)、IEがMime sniffしないようにするのに十分具体的ですか?それとも、この道を追求することを考えて、実際に自分の足を撃っていますか?
php - Apache でヘッダーの書き換えと設定を同時に行う方法
画像のディレクトリがあり、ブラウザで直接表示したり、ダウンロードしたりできます。
/gallery/gal_4254.jpg というファイルがあるとします。
/download/gal_4254.jpg を作成して、画像を表示するのではなく、画像のダウンロードをトリガーしたいと考えています。/download は空です。すべての画像は /gallery にあります。
ダウンロードディレクトリへのリクエストを他のファイルに正常にマップできます
そして、設定することでギャラリーディレクトリにダウンロードを強制することができます
したがって、ヘッダーの設定は問題ありません。私は実際には /gallery にヘッダーを持たせたくありません.
ただし、2つを組み合わせる必要があるため、リクエストは他のディレクトリのファイルにマップされ、ファイルには添付ヘッダーが与えられます。
書き換えセクションとヘッダー セクションの順序を変更しようとしましたが、役に立ちませんでした。リクエストが別のディレクトリに書き換えられると、ヘッダーが失われると思います。
Apacheでこれを行う方法に関する提案はありますか?
これはPHPでも実行できることを認識しているため、サーバーフォールトに対してここに投稿しました。PHPを使用したソリューションも大歓迎です。
java - Java webapp: content-disposition ヘッダーを追加して、ブラウザーに「名前を付けて保存」動作を強制する
HTTP 1.1/RFC2616 webapps の一部ではありませんが、ブラウザーでリソースを (表示するのではなく)強制的にダウンロードContent-Disposition
したい場合は、次のようなヘッダーを使用できます。
難しいことに、RFC2183 でのみ定義されており、HTTP 1.1 の一部ではありません。ほとんどの Web ブラウザーで必要に応じて機能します。
したがって、クライアント側からは、すべてが十分です。
ただし、サーバー側では、私の場合、Java webapp があり、特に次の場合に、そのヘッダーを設定する方法がわかりません...
Amazon S3 インスタンスでホストされているファイル (「bigfile」など) を用意します (私の S3 バケットは、files.mycompany.com/のような部分的なアドレスを使用してアクセスできます)。これにより、ユーザーは files.mycompany.com/ でこのファイルにアクセスできるようになります。 .mycompany.com/bigfile .
ユーザーがそのファイルをダウンロードしたいときに常にヘッダーが追加されるように、サーブレット(または.jsp )を作成する方法はありますか?Content-Disposition
コードはどのようなものになり、落とし穴がある場合はどうなりますか?
c# - Content-Disposition ヘッダーの Unicode
HttpHandler の子に実装された HttpContext オブジェクトを使用してファイルをダウンロードしています。ファイル名に非ASCII文字が含まれていると、IEでは奇妙に見えますが、Firefoxではうまく見えます。
以下はコードです: -
ファイル名フィールドに 'ß' 'ä' 'ö' 'ü' 'ó' 'ß' 'ä' 'ö' 'ü' 'ó' を指定すると、ファイルにあるものとは異なって見えます名前はfirefoxでうまく見えます。EncodingType と charset を追加しても役に立ちません。
つまり、'ß' 'Ãâ¤' 'ö' 'ü' 'ó' 'ß' 'Ãâ¤' 'ö' 'ü'_'ó' であり、firefox では 'ß' ' です。 ä' 'ö' 'ü' 'ó' 'ß' 'ä' 'ö' 'ü' 'ó'.
これを修正する方法はありますか?
php - Content-disposition:inline ヘッダーは画像をインラインで表示しませんか?
ページにインラインで画像を表示しようとしています。これは codeigniter コントローラーによって提供されています。
FF の Chrome で画像を読み込むと、ダウンロード ウィンドウがポップアップ表示されます。ブラウザがコンテンツをインラインで表示できない場合、とにかくダウンロードが強制されることはわかっていますが、これらはブラウザに正常に表示される PNG および GIF 画像です。IE ではダウンロードを強制しませんが、画像を ASCII で表示します。
画像全体をコメントアウトすると、FF と Chrome の両方で ASCII が表示されますが、画像は表示されません。
コンテンツ タイプを設定すると、FF と Chrome で実際の画像を表示できるようになり、その場所を src として使用できるようになると思いました。
もちろん、javascriptとcssは問題なく表示されます。
画像を適切に表示する方法を知っている人はいますか?