問題タブ [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.

0 投票する
5 に答える
28003 参照

file - 「data:text/plain」URL の強制ダウンロード

ブラウザ (少なくとも Chrome) にdata:text/plainURL をダウンロードさせることができるかどうか疑問に思っていました。

Chrome はバイナリ URL (例: data:application/zip;base64,...) をダウンロードしますが、ブラウザ内で表示できるファイル (テキスト ファイルなど) はダウンロードしません。

これまでに運がなかった私がすでに試したことは次のとおりです。

しかし、このようなヘッダーを追加できないようです。

data:text/plain,...ChromeにURLをダウンロードさせる方法はありますか?

0 投票する
1 に答える
883 参照

php - PHPリダイレクト+強制ダウンロード

オクテット ストリームから曲をダウンロードする Google Chrome アプリケーションを作成していますが、JavaScript の制限により、「ダウンロード」ボタンを作成できません。ユーザーは、右クリックして [名前を付けてファイルを保存] を選択する必要があります。別のサイトにあるオクテット ストリームの場所にブラウザをリダイレクトする php ページを作成し、そこにダウンロード ダイアログを作成したいと考えています。ここにはおそらくセキュリティ上の制限があることはわかっていますが、php ページをリダイレクトして、リダイレクト先のページのコンテンツ ディスポジション ヘッダーを設定することは可能ですか?

注: 使用しているホストが外部サイトへの PHP 呼び出しをサポートしていないため、サーバーからオクテット ストリームを取得して保存することができません。

0 投票する
2 に答える
1734 参照

java - 謎の Content-Disposition ヘッダーの事例

当社の製品には、SWFObject によってロードされる Flash アプリケーションが含まれています。ある顧客の場合、HTTPS 経由ではなく HTTPS 経由でこの SWF にアクセスすると、Flash Player はそれをロードしません。

私はお客様に、(ラッパーページではなく) SWF ファイルの URL に直接アクセスするように依頼しました。

  • 彼が HTTP 経由でこれを行うと、SWF がブラウザーに読み込まれます。
  • HTTPS 経由でファイルを保存すると、IE7 は「ファイルを保存」ダイアログ ボックスを表示します。これは、「Content-Disposition: attachment」ヘッダーが応答に存在することを意味します。これは、SWF が Flash Player にロードされない理由も説明します。セキュリティ対策として、そのヘッダーで提供される SWF は再生されません。

だから、私は理解しようとしていることがいくつかあります:

  1. Content-Disposition ヘッダーがサーバーによって送信されていることを確認するにはどうすればよいですか (IE7 の奇妙なアーティファクトではありません)。ユーザーは自由に使える IE7 しか持っておらず、Firefox、Chrome などは使用できません。IE7 には、IE9 の開発者ツールにある便利な「ネットワーク」タブが含まれていません。

  2. ヘッダーが存在すると仮定すると、どうやってそこにたどり着くのでしょうか? Tomcat 6 を実行しています。SWF は、Tomcat のデフォルトのサーブレットによって提供されています。HTTPS コネクタが使用されている場合はヘッダーが存在するように見えますが、HTTP コネクタが使用されている場合は存在しません。HTTPS コネクタを有効にすることを除いて、Tomcat の構成はそのままです。

余談ですが、私は Flash のキャッシュ クリアを信用していません。IE9 の下の私のマシンでは、ブラウザーのキャッシュと Flash Player の保存データを明示的にクリアした後でも、SWF はキャッシュによって満たされることがよくあります。ブラウザ。ここで何か不足していますか?顧客が偽のキャッシュ バージョンの SWF にアクセスしている可能性はありますか?

編集:明らかに、開発者ツールの「キャッシュのクリア」コマンドは、実際にはキャッシュをクリアしませ。標準的な方法を使用すると、期待どおりの結果が得られました。

編集 2: Tomcat 内のトレースは、Content-Disposition ヘッダーが設定されていないことを示します。ブラウザが受信していないことは確かではありませんが、ブラウザがTomcatに直接接続していることがわかります。これは、ブラウザー側の奇妙な動作のようです。

0 投票する
2 に答える
135 参照

php - PHPのファイル転送コードは正しいですか?

曲のダウンロードとなるはずのこのページがあります。ダウンロードはFirefoxで機能しますが、ChromeとSafariでは何も起こりません。これが私のコードです。

私はこれを機能させるためにあらゆる種類の異なることを試みましたが、2つのブラウザでは何も起こりません...アイデアや助けがあれば幸いです...

0 投票する
1 に答える
1100 参照

php - Word文書を添付ファイルとして送信する

PHPを使用して動的にWord文書を作成していますが、添付ファイルとして送信する必要があります。

メールで送信するために一時的にサーバーに保存する方法はありますか?もっと良い方法はありますか?

0 投票する
4 に答える
732 参照

java - ユーザーが「名前を付けて保存」を使用するときにファイル名を選択するにはどうすればよいですか?

AppEngineデータストアの上に基本的なファイルのアップロード/ダウンロードを実装しました。
私が欲しい機能は、「base.c」という名前のファイルがテキストファイルとして開かれることです。だから私は次のことをしました:(
もちろん私のコードは一般的なケース用ですが、この特定の例は問題を示しています)

これにより、ブラウザでテキストファイルとして開きます。これは私が必要としていたものです。
ただし、ユーザーがブラウザの「名前を付けてページを保存」オプションを使用すると、「base.c」の初期名が表示されることも必要です。これはfirefox(6)でも同様ですが、chrome(15)とsafari(5)ではデフォルトの名前が「download」になります。
さらに悪いことに、ファイル名としてbase.cを選択すると、chromeはこれが間違った拡張子であることをユーザーに警告し、続行するための確認を求めます。
ここで、「インライン」の代わりに「添付ファイル」を使用すると、ファイルは開かれませんが、正しい名前でダウンロードされます。

デフォルトの名前を「base.c」として保存するにはどうすればよいですか?
これはブラウザのせいですか、それともHTTPヘッダーを誤用していますか?

(助けがあれば、すべてのテストはOSX 10.6で行われ、ダウンロードサイトは次のようなものです:http:
//------。appspot.com/download?name = base.c

0 投票する
1 に答える
2718 参照

download - Excel.xlsxダウンロード-開くと保存の組み合わせで違反エラーメッセージを共有する

私はこの質問が数回提起されていることを発見しましたが、まだ決定的な答えはありません。まともな解決策はかなりの数の人々を助けるように見えます。

そのため、サーバー上にExcelファイル(.xlsx)を作成し、content-disposition'attachment'を使用してクライアントにダウンロードします。[保存を開く]ダイアログが表示され、[保存]、[開く]、[名前を付けて保存]の順に選択すると、すべて正常に機能します。ただし、[開く]を選択して[保存...]ボタンを押すと、Excelがしばらくハングし、次のメッセージが表示されます。共有違反のため、変更を'Export[5].xlsx'に保存できませんでした。別のファイルに保存してみてください。次に:開こうとしているファイル'F8CAC020.IE5 \ HM2NBE5C \ F8CAC020'は、ファイル拡張子で指定された形式とは異なる形式です。ファイルを開く前に、ファイルが破損しておらず、信頼できるソースからのものであることを確認してください。今すぐファイルを開きますか?次に:最終的に[名前を付けて保存:]ダイアログが表示されます([はい]を押したと仮定します)。

ファイルを作成するためのコードは次のとおりです。

content-dispositionヘッダーを削除すると、Excelで正しい種類の動作が得られますが、名前が間違っており、Excelドキュメントが代わりにブラウザーに表示されないという保証はありません(クライアントの設定によって異なります)。[開く]、[保存]の順に押すと、次のメッセージが表示されます。「default.aspx」は読み取り専用です。コピーを保存するには、[OK]をクリックし、[名前を付けて保存]ダイアログボックスでブックに新しい名前を付けます。

したがって、問題は、2つの動作を適切なものに組み合わせる方法です。ダウンロードしたファイルを開いて保存しようとすると、すぐ上に素敵なエラーメッセージが表示されますが、ドキュメントをダウンロードしてデフォルトのファイル名を指定する必要もあります。

乾杯、

ジェームズ

0 投票する
2 に答える
1307 参照

.net - インラインファイル名コンテンツの配置と、アクションを保存するための動的ファイル名の挿入のソリューション

基本的に、私はPDFをメモリからユーザーのブラウザにストリーミングしています。システムユーザーが(ブラウザーで)adobeで保存を押して、ファイル名に動的な値(顧客の名前など)を事前に入力できるようにしたいと思います。

これまでこの問題について少し読んだことがありますが、インラインファイル名を設定するコンテンツ処理ヘッダーが正しく実装されていないようです。

私は、adobeがpdfを生成するページからファイル名を取得することを読みました。つまり、ページ名がpdfviewer.aspxの場合、pdfのファイル名の事前入力された値はpdfviewer.pdfです。

回避策を探しています。私の最初のアイデアは、PDFを生成してプッシュし、Web構成を次のように設定するhttpハンドラーを作成することでした。

このように、リンクを「lastname.ashx」に動的に設定すると、PDFHandlerでコードが実行され、URLは「...\lastname.ashx」のようになります。これを概念実証で機能させることができるようです(pdfの生成を単純なrepsonse.write( "hello world")に置き換えます)が、もっと良い回避策があるかどうか疑問に思っています。 ?

注:概念実証はIEでのみ機能します。これは、このイントラネットアプリケーションの対象となるブラウザーであるため、満足しています。

0 投票する
2 に答える
1008 参照

java - Java で大きなファイル名の HTTP Content-Disposition を正しく設定するにはどうすればよいですか?

私は、任意の PDF ファイルが J2EE Web サーバーからダウンロードされるようになるいくつかの要件に取り組んでいます。名前は次のようになります。

Xxxxxxxxxxxxxxxxxxx - Yyyyyyyyyy - Aaaaaaaaaaa - Bbbbbbbb ccc Ddddddddddddd - abc1234560 - 2009-03-26 – 235959.pdf

これで、RFC2183 のいくつかのセクションを読みました。

http://www.ietf.org/rfc/rfc2183.txt

例えば

tspecials' characters SHOULD be represented as a single 非token'のみを含む短い (長さ <= 78 文字) パラメータ値。ASCII 文字のみを含み、tspecials' characters, SHOULD be represented as 引用符付き文字列を含む短いパラメーター値。78 文字を超えるパラメータ値、または非 ASCII 文字を含むパラメータ値は、[RFC 2184] で指定されているようにエンコードする必要があります。

などなど。これらのRFCをすべて読まないと、何百万もの問題が発生する可能性があります...または、そのようなRFC仕様を処理するライブラリを選択します。Javaにそのようなものはありますか?それとも、私は偏執的ですか?実際には、このヘッダーを出力ストリームに書き込むだけで十分です:

0 投票する
0 に答える
484 参照

django - 画像を表示する代わりに画像をダウンロードするためのリンク (CANT Change Content-Disposition Header)

Django アプリがあり、すべての静的コンテンツは NGINX を介して処理されます。ユーザーがマークアップのリンクをクリックして、クライアントでいくつかの静的リソース (写真) をダウンロードできるようにしたいと考えています。

リンク/リソースをダウンロード可能にするには、Content-Disposition を変更できることを知っています。残念ながら、私の静的アセットはすべて NGINX を介して提供されているため、これには問題があるようです。Content-Disposition を変更して画像をダウンロード可能にするためだけにビューを作成したくありません。

ここでjQueryまたはその他の方法でできることはありますか?