ダイレクトファイルのダウンロードvsダウンロードとしてファイルを読む
-
21-09-2019 - |
質問
サーバー上のファイルへの直接リンクを作成することと、場所からファイルを読み取り、コンテンツタイプのヘッダーを設定してデータをストリーミングするなどのことを行うことに違いはありますか。
アプリをBlackBerryにダウンロードするために使用しているWebサーバーがあるので、私は興味があります。ファイルを作成してそのファイルへの直接リンクがある場合、それは機能しますが、Webページを使用してそれを戻すと、そうではありません仕事。電話はファイルを取得しますが、機能しません。
注意すべきこと:
- URLはどちらの場合も同じです(つまり)http://somesite.com/download/file.jad)
- Fiddlerを使用したブラウザでは、ダウンロード/ヘッダーがバイトのバイトとまったく同じです
では、なぜ電話が、データが送信され、URLが同一であるときにデータをストリーミングするコントローラーである直接リンク対コントローラーであるファイルを好むのはなぜですか?
解決 2
この問題の修正を発見しましたが、何がそれを引き起こすのかはまだわかりません。 SMS/Email Gatewayを介して電話へのリンクを配信しています。電話がSMSを取得し、ダウンロードのリンクを選択すると、JADを取得したいかどうかを尋ねます。 HTMLリンクとまったく同じリンクを別のページに配置し、そのページを指すSMSを送信しました。 Webサイトにエラーがスローされます...そこで、リンクをコピーして電話ブラウザーに貼り付けました。ページは正常に表示されます。ページのJADダウンロードリンクをクリックすると、JADは正常に動作します。
ですから、SMSの直接リンクを防ぐセキュリティメカニズムが2つあると考えています(ただし、これは他のファイルで機能しました)、または電話がURLを取得する方法が異なる方法です。
私はいくつかのテストを実行し、ID値を受け入れるページで、何か他のものに気づきました(http://site.com/download/145)145はファイルのIDです。電話ブラウザでそのリンクに移動すると、正常に動作し、ファイルをダウンロードします。 SMSで送信すると、IDがフロートであると予想され、文字列を受け取ったと言ってサーバーがエラーを発揮します。では、電話がSMSから直接リンクするとき、URLパラメーターが文字列であるが、ブラウザで使用される場合、実際にフロートとして解析されるのはなぜですか?
長く巻き込まれた説明で申し訳ありませんが、それは奇妙な問題です。
他のヒント
.jadファイルは、ダウンロードの最初の部分にすぎません。それに関連付けられた.codファイルもあります(JADで参照)。 「ストリーミング」メソッドがCODファイルを正しく、正しいMIMEタイプで送り返すようにしましたか?