4

私は初心者です。ユーザーがダウンロード オプションをクリックしたときに、ファイルをダウンロードして、名前を付けて保存/開くなどのダウンロード オプションではなく、ブラウザで開くようにしたいと考えています。

Response.AddHeader("Content-disposition", "attachment; filename=" + Name);

しかし、どこでどのように使用するのかわかりません。実際には、arraylist に格納されている Bean のオブジェクトの 1 つとして url を返す、作成されたクエリから url 値を取得しています (このリストには url にも他の値があります)。arraylist内にURL値をBeanとして持っています

type=.pdf
release date=12/3/08
name=hai.pdf
url=/files/en/soft/doc/docs/hai.pdf

このようにコントローラーでこの配列リストを取得しています

ArrayList details = dao.getdetails(Bean.getNumber());

これをこのようにビューに渡します

Map.put("details", details);
modelView.setViewName("details_list");
modelView.addAllObjects(Map);
return modelView;

jspでは、この配列リストを繰り返し、このようなコンテンツを表示しています

Type    name            Release Date            
.txt    hai.pdf     May 21st 2012   Download

.txt    hello.txt   May 21st 2012   Download

ダウンロードのために、私はjspでこのように使用しました

<td colspan="2" valign="top">                           
<a href="${details.Url}"/>
<img src="/images/download.gif" alt="Download" border="0" align="right"></a>
</td>

ダウンロードをクリックすると、ブラウザで開きます。代わりにこれをダウンロードする必要があります。使い方や扱い方を教えてください

response.setHeader("Content-Disposition", "attachment;");

私の要件のために上記を追加する場所、またはJavaスクリプトでもできるかどうか。上記の解決を手伝ってください。

4

3 に答える 3

0

ブラウザが応答するヘッダーに依存します。

ヘッダーが image/png の場合、ブラウザに表示されるとします。application/octet-stream で同じ画像を送信すると、ブラウザはそれを強制的にダウンロードします。

http://en.wikipedia.org/wiki/Byte_streamを見てください

プロジェクトでは、ブラウザからの送信リクエストが異なることがわかりました。

Firefox または IE から画像をアップロードすると、chrome が application/octet-stream としてアップロードする場所に image/png としてアップロードされます。

于 2012-06-11T05:35:17.493 に答える
-1

ヘッダーを追加してみてください

response.setHeader("Content-Type: アプリケーション/強制ダウンロード");

于 2012-06-11T05:15:18.653 に答える