Java Webインプリメンテーションブラウザを使用してサーバからファイルをダウンロード(バックグラウンド)
5264 ワード
Java Webインプリメンテーションは、ブラウザを使用してサーバからファイルをダウンロードします.次の2つの状況のダウンロードを実現します.
需要(一):
1、ユーザーはページにフォームを記入する.2、記入が完了したら、ダウンロードを選択し、フォームの内容をバックグラウンドに送ります.3、バックグラウンドは内容によって一つのファイルを生産し、フロントエンドに送る.4、フロントエンドはファイルをローカルにダウンロードしました.この要件は、簡単に言えば、ユーザーがページに内容を記入し、内容をファイルの形式に変更することです.
バックグラウンド設計の考え方:
1、まずフロントエンドから送られてきた内容を手に入れる.2、内容を解析し、バッファに保存する.3、応答ヘッダを設定します.4、バッファ内の内容をストリームで書く.
コード実装:
需要(二):
1、ユーザーはダウンロードするファイルを指定します.2、ファイルをローカルにダウンロードしました.
バックグラウンド設計の考え方:
1、まず、フロントエンドでダウンロードするファイルを取得します.2、サーバー上のファイルのパスを見つけます.3、ファイルをメモリ4に読み込み、ファイルをストリームで書き出します.
コード実装:
落ち着いて、焦らないでください.あなたが望んでいるのは、歳月があなたにあげます.
需要(一):
1、ユーザーはページにフォームを記入する.2、記入が完了したら、ダウンロードを選択し、フォームの内容をバックグラウンドに送ります.3、バックグラウンドは内容によって一つのファイルを生産し、フロントエンドに送る.4、フロントエンドはファイルをローカルにダウンロードしました.この要件は、簡単に言えば、ユーザーがページに内容を記入し、内容をファイルの形式に変更することです.
バックグラウンド設計の考え方:
1、まずフロントエンドから送られてきた内容を手に入れる.2、内容を解析し、バッファに保存する.3、応答ヘッダを設定します.4、バッファ内の内容をストリームで書く.
コード実装:
public void download(HttpServletResponse response){
JSONObject json = new JSONObject();
/* JSON */
json.put("A","1");
json.put("B","2");
json.put("C","3");
/* JSON, JSON */
StringBuilder sb = new StringBuilder();
Iterator it = json.keys();
while(it.hasNext()){
String key = (String)it.next();
String value = (String)json.get(key);
sb.append(key).append("=").append(value).append("
");
}
/* ContentType , , */
response.setContentType("application/multipart/form-data");
/* : ( a.ini) */
response.setHeader("Content-Disposition", "attachment;filename=a.ini");
try{
/* */
OutputStream os = response.getOutputStream();
os.write(sb.toString().getBytes());
os.flush();
os.close();
}catch (IOException ioe){
ioe.printStackTrace();
}
}
需要(二):
1、ユーザーはダウンロードするファイルを指定します.2、ファイルをローカルにダウンロードしました.
バックグラウンド設計の考え方:
1、まず、フロントエンドでダウンロードするファイルを取得します.2、サーバー上のファイルのパスを見つけます.3、ファイルをメモリ4に読み込み、ファイルをストリームで書き出します.
コード実装:
public void download() throws IOException{
//
File file = new File("/home/a.txt");
InputStream ins = new FileInputStream(file);
/* ContentType , , */
response.setContentType("multipart/form-data");
/* : */
response.setHeader("Content-Disposition", "attachment;filename="+file.getName());
try{
OutputStream os = response.getOutputStream();
byte[] b = new byte[1024];
int len;
while((len = ins.read(b)) > 0){
os.write(b,0,len);
}
os.flush();
os.close();
ins.close();
}catch (IOException ioe){
ioe.printStackTrace();
}
}
落ち着いて、焦らないでください.あなたが望んでいるのは、歳月があなたにあげます.