1

別の開発者が作成したサイトを編集しています。いくつかのファイルをダウンロードするさまざまな方法を試してみると、次のことに気付きました。

ランダムなファイルを取得し、そのファイルをサイトのルート フォルダーに配置しました

1) ファイルの名前を「a.exe」に変更します。「www.mysite.com/a.exe」を参照すると、ファイルのダウンロードが開始されます。

2)ファイル「a.pdf」の名前を変更します。「www.mysite.com/a.pdf」を参照すると、ブラウザがpdfを開こうとします。

3) ファイルの名前を「a.txt」に変更します。「www.mysite.com/a.txt」を参照すると、ファイルのダウンロードが開始されます。

4) ファイル名を「a.jpg」に変更します。「www.mysite.com/a.jpg」を参照すると、ブラウザは画像を表示しようとします。

5)ファイル「a.apk」の名前を変更します。「www.mysite.com/a.apk」を参照すると、サーバーは「404 - ファイルまたはディレクトリが見つかりません」と応答します。

しかし、なぜ?ファイルは同じで、常に同じフォルダにあるのに、突然「消えた」ように見えるのはなぜですか?

以前の開発者は、apk ファイルをダウンロードできるようにするサーバー側の回避策を設計していました。

しかし、ファイルをダウンロードするために単純に書き込むことができないとは信じられません

<a href="www.mysite.com/a.apk"> DOWNLOAD </ a>

apkファイルを除くすべてのファイルタイプで動作するため...

4

3 に答える 3

6

解決策を見つけました!apk ファイルをダウンロードしたい場合は、サイトがどのように動作するかをサイトに伝える必要があります。これを行うには、web.config に次のように追加します。

<system.webServer>

    <staticContent>

        <mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive" />

    </staticContent>

</system.webServer>

後で、この方法でリンクを作成するだけです。

<a href="myappPath.apk">DOWNLOAD</a>

それで全部です!

于 2013-07-19T14:48:51.527 に答える
2

Web サイトをホストするサーバーは、おそらくこのファイル タイプの拡張子 (MIME タイプ) を認識していません。すべての拡張子はサーバーで宣言されています。これらの宣言を使用すると、インターネット経由でファイル タイプにアクセスすることを許可または拒否できます。おそらく、ファイル拡張子をサーバーに追加する必要があります。

APK の MIME 宣言はapplication/vnd.android.package-archive です。

于 2013-07-19T12:04:09.333 に答える
0

Web サーバー、クライアント OS、およびユーザー エージェントは、ダウンロードされたリソースのコンテンツ タイプを決定する際に対話します。Webサーバーは、送信されたコンテンツが何を表しているかをクライアントに伝えるhttpヘッダーを送信し、コンテンツをファイルとして保存するかどうかを指定するヘッダーを追加し、ファイル名を提案する場合があります. ただし、ブラウザのユーザー設定がこれを上書きする場合があります。ファイル拡張子とコンテンツタイプおよび/またはアクションとのブラウザおよびOS全体の関連付けも干渉する可能性があります。ファイル拡張子は、URL のパス部分の末尾になります (これは、動的に作成されたリソースにも当てはまります)。

ブラウザーの統合が必要ない場合は、コマンド ライン ツールcurlまたはwgetを参照してください。ここでは、ダウンロードしたデータを特定のファイル名で保存するように明示的に指定できます。

例えば。(Linux; Windowsの場合、すべての一重引用符を二重引用符に置き換えます。保護されていないリソースにはユーザー/パスワードは明らかに必要ありません):

wget --no-cache --no-check-certificate --no-proxy 
     --output-document='<target_file_name>'
     --auth-no-challenge --http-user='<user>' --http-password='<pw>' '<url>'
于 2013-07-19T12:08:31.657 に答える