この記事では、Javaが実装したファイルのアップロードおよびダウンロードツールクラスについて説明します。次のように、参照のために共有してください。
これは、Java言語を使用してEclipse環境でファイルをアップロードおよびダウンロードするツールクラスです。以前に紹介したC#ファイルのアップロードおよびダウンロードツールクラスと同様に、サーバー内のファイル名の複製を回避するために、サーバー上のファイル名は「サーバー時間(Millisecondsに定義) +ファイル名 +ファイルサフィックス」の形式で使用されます。ダウンロードプロセス中に、バイトストリームを返すファイルのダウンロードには、Spring MVC Reponsementityが使用されます。ダウンロードが成功した後、ファイルの保存パスをカスタマイズできます。
特定のソースコードは次のとおりです。
パッケージcom.utils; import java.io.file; import java.io.ioexception; import java.io.inputstream; Import java.io.unsupportedencodingincection; Import java.text.simpledateformat; Import java.util.date; Import org.commons.commons.commons.file.filiutils; org.springframework.http.httpheaders; Import org.springframework.http.httpstatus; Import org.springframework.http.mediatype; Import org.springframework.http.responsety;パスに応じたディレクトリ。ディレクトリがない場合は、ディレクトリを作成します * * @param path */ private static void recutedir(string path){file filedir = new file(path); if(!filedir.exists()&&!filedir.isdirectory()){///dolumnadiridir.mkdir(); // create directory}}/***ファイル名をファイルのアップロードパスに解析しているかどうかを決定* createdir(path);日付date = new date(); SimpledAteFormat dateFormat = new SimpleDateFormat( "yyyymmdhhmmssssss"); string filenamestr.substring(0、filename.lastindexof( "。")); //接尾辞文字列のsuffix = filename.substring( "。") + 1); // suffix if(filename.trim()!= "" ")ファイルが存在しません + = "//" + filenamestr + nowstr + "。"。 + suffix; //アップロードパスを定義} return path; }/ ** *ファイルダウンロードを思い出させる * * @param filename * @param path * @return */ public static responsentity <byte []> downloadfile(string filename、string path){try {filename = new String.getBytes( "gb2312")、 "iso_8859_1"); (unsupportedencodingexception e1){e1.printstacktrace(); } file file = new file(path); httpheaders headers = new httpheaders(); headers.setContentType(mediatype.application_octet_stream); headers.setContentDispositionFormData( "Attachment"、filename); RESPONSENTITY <byte []> bytearr = null; try {bytearr = new ResponseNtity <byte []>(fileutils.readfiletobytearray(file)、headers、httpstatus.ok); } catch(ioexception e){e.printstacktrace(); } bytearrを返します。 } / ** *入力ストリームからバイト配列へのデータを書き込み * * @param in * @return * / public static byte [] inputstream2bytearray(inputstream in、boolean isclose){bytearray = null; try {int total = in.abailable(); bytearray = new byte [total]; in.read(bytearray); } catch(ioexception e){e.printstacktrace(); }最後に{if(isclose){try {in.close(); } catch(Exception E2){System.out.println( "Close Churn Failed"); }}} bytearrayを返します。 }}Javaアルゴリズムの詳細については、このサイトに興味のある読者は、「Javaファイルの要約とディレクトリ操作スキルの要約」、「Javaデータ構造とアルゴリズムに関するチュートリアル」、「Java操作DOMノードスキルの概要」、「Java Cache操作スキルの要約」を見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。