ホームページ  >  記事  >  Java  >  Java ファイルのダウンロードに関する詳細なチュートリアル (解析なし)

Java ファイルのダウンロードに関する詳細なチュートリアル (解析なし)

php是最好的语言
php是最好的语言オリジナル
2018-08-06 17:31:511777ブラウズ

近 まずは最近勉強しているサーブレットについてお話します。サーブレットは、サーバー上で実行されるコードの一部です。


サーブレットには、リスナー テクノロジー - リスナー、およびファイラー テクノロジー - フィルターという 3 つの標準的なサーブレット テクノロジーがあります。最後の2つは今後のブログで紹介していきます。 ServletContext オブジェクトとは何かについて話しましょう。 ServletContext オブジェクトは Web アプリケーション環境 (コンテキスト) を表し、Web アプリケーションに対して ServletContext オブジェクトは 1 つだけ存在します。

ServletContext はドメイン オブジェクトです。データ領域に格納されるのはドメイン オブジェクトであり、そのスコープはすべての Web リソースです。

ファイルをサーバー(公開ウェブサイトのコンピューター)に置く場合のダウンロード方法について説明します。

Java ファイルのダウンロードに関する詳細なチュートリアル (解析なし)

これは問題ありませんが、このような状況に遭遇するでしょう。 jpg形式をダウンロードしたいのですが、ブラウザが直接開いてダウンロードできませんが、zip形式ならダウンロードできます。ブラウザが解析できないようにするには、コードを通じてこれを設定する必要があります。これでダウンロードの準備ができました。

新しいサーブレット ファイルを作成し、get コードに記述します。

		//解决获得中文参数的乱码
		filename=new String(filename.getBytes("ISO8859-1"),"UTF-8");
		//要下载的文件的类型--客户端通过文件的MIME类型去区分类型
		response.setContentType(this.getServletContext().getMimeType(filename));
		//告诉客户端该文件不是直接解析而是以附件的形式打开(下载)
		response.setHeader("Content-Disposition", "attachment;filename="+filename);
		//收获文件的绝对路径
		String path = this.getServletContext().getRealPath("download/"+filename);
		//获得文件的输入流
		FileInputStream in = new FileInputStream(path);
		//获得输出流--通过response获得输出流用于向客户端写内容
		ServletOutputStream out = response.getOutputStream();
		//文件拷贝的模板代码
		int len=0;
		byte[] buffer=new byte[1024];
		while((len=in.read(buffer))>0){
			out.write(buffer, 0, len);
		}
		in.close();
		out.close();

この出力はオフにすることもオフにすることもできますが、プログラムでは新しいものであるため、入力はオフにする必要があります。 out はプログラムの実行後に自動的に閉じます。

Java ファイルのダウンロードに関する詳細なチュートリアル (解析なし)

以上です。

これはサーバー内のリソースに相当します。

Java ファイルのダウンロードに関する詳細なチュートリアル (解析なし)

関連推奨事項:

Java XML ファイルの解析

Java フォルダーの解析

以上がJava ファイルのダウンロードに関する詳細なチュートリアル (解析なし)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。