ファイルアップロードには、SmartuploadおよびApache Commons Fileuploadが含まれます。今日は、Commons Fileuploadの使用法を紹介します。
1.commons-fileupload-1.3.1.jar
住所をダウンロード:http://xiazai.vevb.com/201608/yuanma/javawebfileupload(vevb.com).rar
2.web.xml
<! - ファイルサーバーサイドのアップロード - > <Servlet> <Servlet-Name> uploadServlet </servlet-name> <servet-class> com.servlet.uploadservlet </servlet-class> <init-name> filepath </param-name> <! - ファイルストレージパス - > <param-value> f:/myeclipse/workspaces/king/webroot/uploadfile/</param-value> </init-param> </servlet> <servlet-name> uploadservlet </servlet-name> <url-pattern>//uploadservlet </url-jupletn> </servet-maps <アクション= "servlet/uploadservlet" method = "post" enctype = "multipart/form-data"> <div align = "center"> <fieldset> <legend> upload file </legend> <br/> <div align = "left"> upload file1 </div arign = "left"> <input = "ファイル="ファイルfile2 </div> <div align = "left"> upload file2 </div> <div align = "left"> upload file1 </div> <div align = "left"> upload file1 </div> <div align = "left"> upload file2 </div> <div align = "left"> <input "file2"/div> </<説明1 </div> <div align = 'left'> <入力タイプ= "text" name = "description1"/> </div> </div> <div> <div align = 'left'ファイル "/> </div> </div> </div> </fieldset> </div> </form>
3.サーブレット
パッケージcom.servlet; import java.io.file; Import java.io.fileoutputStream; Import java.io.ioexception; Impture java.io.inputStreamReader; Import Java.OutputStream; Import java.io.Printwriter; Import Java.util.List; Import.Servoletletelet.Servax.Serveletletletelet; javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; Import javax.servlet.servlet.httpservletResponse; Import org.apache.commons.fileupload.diskfileupload;インポートorg.apache.commons.fileupload.fileitem; Import org.apache.commons.fileupload.fileuploadexception; Import sun.swing.filepane; public class uploadservlet extends httpservlet {private string felepath; /***サーブレットの破壊。 <br> */ public void Destroy(){super.destroy(); //ログに「Destroy」文字列を置くだけですResponse.getWriter()。println( "ファイルを投稿にアップロードしてください"); } public void dopost(httpservletrequest request、httpservletresponse応答)servletexception、ioexception {file1 = null、file2 = null;文字列description1 = null、description2 = null; Response.setcharacterencoding( "utf-8"); request.setcharacterencoding( "utf-8"); Response.setContentType( "Text/HTML"); printwriter out = response.getWriter(); diskfileupload diskfileupload = new diskfileupload(); // parse request try {list <fileitem> filelist = diskfileupload.parserequest(request); // result out.println( "すべてのfileitem ... </br>"); this.log( "すべてのfileitem ..."を通過... "); for(fileItem fileItem:fileList){if(fileitem.isformfield()){//テキストフィールドの場合if( "descripted1" .equals(fileitem.getFieldName())){out.println( "description1 ... </br>");説明1 = new String(fileItem.getString()。getBytes()、 "utf-8"); } if( "description2" .equals(fileitem.getFieldName())){out.println( "travel to description2 ... </br>");説明2 = new String(fileItem.getString()。getBytes()、 "utf-8"); }} else {// file fielf if( "file1" .equals(fileitem.getfieldname())){file remotefile = new file(new String(fileItem.getName()。getBytes()、 "utf-8")); out.println( "file1 ... </br>"への移動); out.println( "クライアントファイル場所:"+remotefile.getabsolutepath()+"</br>"); //サーバー側ファイル、uploadFileフォルダーに配置file1 = new file(filepath、remotefile.getName()); file1.getParentFile()。mkdirs(); // folder path file1.createNewfile(); //新しいファイルinputStream ins = fileitem.getInputStream(); // fileItem content outputStream os = new fileoutputStream(file1); = 0。 } out.println( "save file"+file1.getabsolutepath()+"</br>"); }最後に{ous.close(); ins.close(); }} if( "file2" .equals(fileitem.getFieldName())){file remotefile = new file(new String(fileItem.getName()。getBytes()、 "utf-8")); out.println( "file2への旅行... </br>"); out.println( "クライアントファイル場所:"+remotefile.getabsolutepath()+"</br>"); //サーバー側ファイル、uploadFileフォルダーに配置file2 = new file(filepath、remotefile.getName()); file2.getParentFile()。mkdirs(); //フォルダーパスfile2.createNewfile(); //新しいファイル入力ins = fileitem.getInputStream(); // fileItem outputStream ous = new fileoutputStream(file2); //出力to try try {byte [1024]; len = 0; //実際のキャッシュの長さwhile((len = ins.read(buffer))> -1){// cache ous.write(buffer、0、len)に読み込むループ。 } out.println( "save file"+file2.getabsolutepath()+"</br>"); }最後に{ous.close(); ins.close(); }}}} out.println( "要求解析が完了した"); } catch(fileuploadexception e){// todoが自動的に生成されたcatch block out.println( "<!doctype html public/" - // w3c // dtd html 4.01 transitional // en/">"); out.println( "<html>"); out.println( "<head> <title> aサーブレット</title> </head>"); out.println( "<body>"); if(file1!= null){out.println( "<div align = 'left'> file1; </div>"); out.println( "<div align = 'left'> <a href = '"+request.getContextPath()+file1.getName()+"'ターゲット= _blank>"+file1.getName()+"</a>"); out.println( "</div>"); out.println( "</div>"); } if(file2!= null){out.println( "<div align = 'left'> file2; </div>"); out.println( "<div align = 'left'> <a href = '"+request.getContextPath()+file2.getName()+"'ターゲット= _blank>"+file2.getName()+"</a>"); out.println( "</div>"); out.println( "</div>"); } out.println( "<div>"); out.println( "<div align = 'left'>説明1:</div>"); out.println( "<div align = 'left'>説明2:</div>"); out.println( "<div align = 'left'>説明2:</div>"); out.println( "<div align = 'left'>説明2:</div>"); out.println( "<div align = 'left'>"); out.println( "<div align = 'left'>"); out.println( "<div align = 'left'>"); out.println(description2); out.println( "</div>"); out.println( "</div>"); out.println( "</body>"); out.println( "</html>"); out.flush(); out.close(); }} public string getservletinfo(){return "これはEclipseによって作成されたデフォルトサーブレットです"; } public void init()throws servletexception {//コードをここに置くfilepath = getServletConfig()。getInitParameter( "filepath"); }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。