問題タブ [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 - 共有サーバー上の大きなファイルの強制ダウンロード
誰かのサイトで大きなビデオ ファイル (約 300 MB) へのダウンロード リンクを追加しようとしていますが、残念ながら共有ホスティングを使用しています (多くの人がダウンロードする場合はアップグレードする必要があると伝えました)。人々が「対象をファイルに保存」する必要がないようにしたいので、通常は次のコードを使用してダウンロードを強制します。
これは、小さいファイルでは問題なく機能しますが、大きいファイルでは機能しません。また、エラーをオンにした後でも、エラーもエラー ログも表示されません。これは共有メモリの制限(またはおそらくタイムアウト)に関係していると確信していますが、共有サーバーで大きなファイルのダウンロードを強制する方法を知っている人はいますか?メモリ制限を十分に高く設定するには?
どうもありがとう、
デイブ
pdf - コンテンツ処理を使用して pdf サーブレットをダウンロードする
サーブレットから pdf ファイルをダウンロードするために、コンテンツ処理を使用しています。私のコードは chrome、firefox、IE では正常に動作しますが、問題は、opera を使用して pdf ファイルをダウンロードしようとすると、pdf 拡張子が削除され、htm が追加されることです。以下は私のコードです:
heroku - RailsアプリからS3ファイルを提供するには?
ユーザーがリンクを左クリックして S3 ファイルをダウンロードできるようにしようとしています。通常は、右クリックして名前を付けて保存する必要があります。
http://apidock.com/rails/ActionController/DataStreaming/send_fileを調べましたが、これが必要かどうかはわかりません。
この記事http://www.jtricks.com/bits/content_disposition.htmlは基本的に、Apache を構成することによってどのようにそれを行うことができるかを示しています。ただし、Heroku を使用しています。
S3 からファイルを提供するために以前に Content-Disposition を使用した人はいますか? また、これが Web プロセス全体 (Dyno) を占有するかどうか疑問に思っていますか? または、代わりに S3 サーバーでプロセス全体が発生する場合は?
私は試した:
そして私は得る:
ファイルは存在します。手動で URL に移動した場合。ファイルは正常に再生されます。
heroku - ユーザーが右クリックして、Carrierwave + S3 + Heroku + Content-Dispositionのように保存する前に、ファイル名の名前を変更することはできますか?
ユーザーが右クリックして、Carrierwave + S3 + Heroku + Content-Dispositionのように保存する前に、ファイル名の名前を変更することはできますか?ファイルをS3サーバーに保存する前に、ファイル名(193712391231.flvなど)をサニタイズし、元のファイル名をデータベースの列に保存することを考えています。
ユーザーがファイルをダウンロードすることを決定したとき(右クリックして名前を付けて保存)。193712391231.flvとして提供/送信できません。代わりに、元のファイル名でファイルを送信したいと思います。
これはどのように実装できますか?
Carrierwaveを使用します。私はこれに出くわしました:
S3は最初にファイルをローカルファイルシステムにキャッシュし、次にそれをブラウザに送信するため、これはS3によって提供されません。これはWebプロセス全体を占めます(HerokuのDyno)。
誰かアイデアがあれば、提案してください。
c++ - Content-Dispositionファイル名の特殊文字
私の質問は、 HTTPでContent-Dispositionヘッダーのfilenameパラメーターをエンコードする方法の複製です。 しかし、その質問はずっと前に行われたものであり、(私の意見では)まだ満足のいく答えがないので、もう一度質問したいと思います。
「weird#€={};filename.txt」のような名前に特殊文字を含めることができるファイルを配信するC++CGIアプリケーションを開発しています。
HTTPContent-Dispostionを次のようなすべてのブラウザで機能するように設定する可能性はないようです。
- インターネットエクスプローラ
- Firefox
- クロム
- オペラ
- サファリ
ブラウザごとに異なるソリューションがあれば幸いです。
今、それは私がどこまで来たかです:
Internet Explorer(二重引用符を追加し、#と;を置き換えました)
Firefox(二重引用符は機能しているようです。これ以上何もする必要はありません):
別の実用的な代替手段:
クロム
二重引用符のみを使用すると、次の問題が発生します。
- =ファイル名で消える
- €は-に置き換えられます
しかし、これは機能します:
オペラ
二重引用符を使用するか、構文を使用すると、filename * =UTF-8''...で次の問題が発生します。
- ファイル名の複数のくっついたスペースが1つに減ります
- {および}が消える: " ab {} cd.txt "-> " abcd.txt "
- ファイル名は;の後に切り捨てられます。その中: " abc; def.txt "-> " abc "
編集2:これはファイル名の長さの制限が原因でした。この構文はOperaで機能します。
サファリ
€は見えない文字に置き換えられます(二重引用符を使用)
/li>
他のスレッド(上記)からの提案を使用して
私のために働いていませんでした。エスケープ文字が翻訳されないか、ブラウザがcgiアプリケーションの名前でファイルに保存しようとしています。それは私のエンコーディングが間違っていたからです。私はRFC5987に従ってエンコードしませんでした。しかし、Safariはとにかくこのエンコードを使用していません。したがって、これまでのところ€文字の解決策はありません。
ところで:UTF-8コンバーターhttp://www.rishida.net/tools/conversion/
これらのテストでは、すべてのブラウザの最新バージョンを使用しました。
- Firefox 7
- Internet Explorer 9
- Chrome 15
- Opera 11.5
- Safari 5.1
PS:キーボードですべての特殊文字を試しました。このスレッドでは、問題が発生したものだけを使用しました。
編集:
また、キーボード上のすべての特殊文字(ファイル名で使用可能)を使用してファイル名を試しましたが、上記のテスト文字列の場合とは異なります。
完全なテスト文字列:
エンコードされたテスト文字列:
この方法の使用:
次の結果が得られました。
- Firefoxは動作します
- Chromeは機能します
- IE:$%&()= `´{} []²³@€µ ^°〜+'#-_。、; üäöß9.jpg(最初の6文字を削除)。編集2:これはブラウザのファイル名の長さの制限が原因でした。文字列の先頭からファイル名を切り取るのが始まりです。これについては詳しく説明しませんでしたが、通常のファイル名は約200文字の長さで、エスケープシーケンスが多いファイル名は250文字より多くても250文字未満であるようです。
- オペラ:0!§$%&()= `´[]²³@€µ ^°〜+'#--_。、; üäöß9.jpg(以前のように一部の文字が欠落しています)。編集2: IEの場合と同様にOperaでもファイル名の長さの「問題」が疑われ、そこでも機能したため、テスト文字列を短くしました。
- Safariはその構文では機能しません。それは除外されました。
編集2:
これまでの状況では、構文filename * =UTF-8''filnameエスケープシーケンス"はSafariを除くすべてのブラウザで機能します。Safariに置き換えられる文字は€だけです。私はそれで生きていけると思います。ありがとう君!
編集3:ファイル名の長さ
ファイル名の長さの問題に気づきました。
- Internet Explorer:ファイル名は147文字の長さにすることができます。文字列にエスケープシーケンスが含まれていない場合は、それがファイル名の長さです。その場合、ファイル名は変わる可能性があります。結果のファイル名は147文字より短くなります。しかし、それは異なります。2つのエスケープシーケンスを使用し、ファイル名を5文字短縮し、多くのエスケープシーケンスを使用し、ファイル名を2文字短縮しました。ここでルールが見つかりませんでした。
- 他のブラウザにはその問題はないようです。ファイルシステムがファイルを処理できる場合は、ファイルを保存します。たとえば、250文字を試しましたが、ブラウザはファイル名(Chrome)を減らす必要があると言ったか、220(Opera)または210(Firefox)文字に短縮しました。ただし、Operaはファイルの終わりを切り落としました。Safariはその長いファイル名を保存しようとしましたが、保存せず、ダウンロードリストにファイル名として「-1」を書き込んでしまいました。
.net - content-dispositionヘッダーが2回送信されています....1回はコードでもう1回は不明です
PDFファイルのダウンロードを強制するためにヘッダーを手動で設定している.aspxページがあります。IEでは正常に動作しますが、chromeとfirefox 8.0では、エラーが発生します。
私はついに問題の原因を追跡し、content-dispositionヘッダーが2回送信されましたが、最初に設定された方法や理由がわかりません。
ヘッダーの最初のインスタンスは次のとおりです。Content-disposition:Attachment 2番目のインスタンスは次のとおりです。Content-Disposition:attachment; filename =download.pdf<-これはコードによって設定されます
IISはどういうわけか引き継ぎ、ヘッダーのこの最初のインスタンスを追加していますか?もしそうなら、どうすればそれをしないように切り替えることができますか?
編集:ヘッダーを設定するコードを追加する
http - multipart/form-data HTTP POST には Content-Disposition が必要ですか?
画像の配列を特定の順序で送信していない場合、つまり、フィールドは重要ではなく、サーバーに任意name
に決定させたい場合はどうなりますか?filename
Content-Disposition
ファイルごとに送信する必要がありますか?
php - PHP - 強制ファイル ダウンロード スクリプト - IF ステートメントで機能しない
次のコードは、ダウンロード ページを呼び出す IF ステートメントを含むページです。
上記のページには、変数を定義するための SQL 接続だけが含まれています。IF ステートメントが false の場合、「dlfile.php」ファイルが必要であることに注意してください。このファイルは次のとおりです。
dlfile.php ファイルを単独で実行すると、問題なく動作し、ダウンロード プロンプトが表示されます。ただし、最初のファイルによって呼び出されると、これが得られます。
ブラウザーはファイルを Web ドキュメントとして読み取ろうとしていると思いますが、よくわかりません。dlfile.php のタグを取り出そうとしましたが、
に
コード自体は正常に実行されましたが、元のファイルから呼び出されたときに同じ奇妙な出力が生成されました。
dlfile.php のコードを元のファイルに入れようとしたところ、同じ出力が得られました。
どうしたの?
ruby-on-rails-3 - レールでは、コンテンツ処理ファイル名をオーバーライドできません
Rails 3.1.0.rc8 と Chromium 15.0.874.102 を使用しています。
CSV ダウンロードのファイル名を設定したい。私はこのSO ソリューションfilename
に従っていますが、Content-Disposition
ヘッダーの を変更できないことがわかりました。
これが私のコードです:
そして私のコントローラーで:
私のログでは:
Chromium ネットワーク インスペクター ツールで、応答ヘッダーに次のように表示されます。
Content-Type
を のようなものに変更するとfoo/bar
、変更がネットワーク インスペクタ ツールに表示されます。を何に設定しfilename
ても、そのままですindex.csv
。
ありがとう、マックス
email - 電子メールを介して公開機能を実装するための戦略を探しています
特定のアドレス(たとえば、publish.news @ domain.com)に電子メールを送信してWebサイトにニュースを公開する機能を提供したいとします。
1)基本戦略は次のとおりです。text/ htmlであり、処理ではないものを探します。これが電子メールの主要な本文です。
2)次に、処分であり、添付ファイルである他のコンテンツを探します(そして、すべての添付ファイルを取得します)。
3)処分およびインラインである他のコンテンツは破棄します。間違っている場合は訂正してください。これは、電子メールの署名のようなものであり、したがって必要ありません。
これまでのところ、この戦略はうまく機能しています。しかし、私は方法がわかりません:
- マルチパート/代替コンテンツを処理します。一部のクライアントは、このプライマリ/サブタイプのコンテンツタイプを使用してHTMLを作成しているようです。
- マルチパート/ミックスを処理します(それが何を意味するのかさえわかりません)。
- 電子メールクライアントがHTMLで作成し、独自の画像を追加して何らかの方法でエンコードする場合。
どんな助けでも大歓迎です。