最近、私はオンラインでファイルのアップロード、ダウンロード、および開きたファイルを作成しました。最初に、ファイルアップロードインターフェイスには他のフォーム(入力ボックス、パスワードなど)が含まれており、アップロードプロセス中に多くの問題が発生しました。以下に、オンラインでファイルのアップロード、ダウンロード、および開くことを同時に実装するテストプログラムを書きました。
まず、レンダリングをご覧ください。
コアコード:
パッケージcom.jefry; java.io.fileをインポートします。 java.io.fileinputStreamをインポートします。 java.io.ioexceptionをインポートします。 java.net.urlをインポートします。 java.util.arraylistをインポートします。 java.util.iteratorをインポートします。 java.util.listをインポートします。 javax.servlet.servletexceptionをインポートします。 javax.servlet.servletoutputStreamをインポートします。 javax.servlet.http.httpservletをインポートします。 javax.servlet.http.httpservletrequestをインポートします。 javax.servlet.http.httpservletResponseをインポートします。 org.apache.commons.fileupload.fileitemをインポートします。 org.apache.commons.fileupload.disk.diskfileitemfactoryをインポートします。 Import org.apache.commons.fileupload.servlet.servletfileupload; / ** *サーブレット実装クラスfileupload */ public class fileupload extends httpservlet {private static final long serialversionuid = 1l; private static final string filedir = "f:/"; /***デフォルトコンストラクター。 */ public fileupload(){}保護されたvoid doget(httpservletrequest request、httpservletresponse応答)throws servletexception、ioexception {string afileName = request.getParameter( "filename");文字列オンライン= request.getParameter( "オンライン"); fileInputStream in = null; servletoutputStream out = null; boolean isonline = online!= null? True:false; try {if(isonline){url u = new url( "file:///" + filedir + afilename); Response.setContentType(U.OpenConnection()。getContentType()); Response.setheader( "content-disposition"、 "inline; filename ="+afileName); } else {Response.setContentType( "Application/X-MSDownLoad"); Response.setheader( "content-disposition"、 "attachment; filename =" + afileName); } in = new fileInputStream(filedir + afileName); out = response.getOutputStream(); out.flush(); int aread = 0; while((aread = in.read())!= -1&in!= null){out.write(aread); } out.flush(); } catch(throwable e){e.printstacktrace(); }最後に{try {in.close(); out.close(); } catch(throwable e){e.printstacktrace(); }}}保護されたvoid dopost(httpservletrequest request、httpservletResponse応答)servletexception、ioexception {diskfileitemactory filefactory = new diskfileitemfactory(); servletfileupload fu = new servletfileupload(fileFactory); fileitems = fu.parserequest(request); iterator iter = fileItems.iterator(); string uploader = null;文字列date = null; List <String> filenames = new ArrayList <String>(); while(iter.hasnext()){fileItem item =(fileItem)iter.next(); if(!item.isformfield()){//ファイル文字列oldfileName = item.getName();文字列newFileName = null; int delimiter = oldfilename.lastindexof( "/"); if(delimiter == -1)newFileName = OldFileName.Substring(Delimiter + 1); else newFileName = OldFileName; filenames.add(newFileName); item.write(new file(filedir + newFileName)); } else {// form string fieldname = item.getFieldName(); if( "uploader" .equals(fieldname)){uploader = item.getString(); } else if( "date" .equals(fieldname)){date = item.getString(); }}} request.setattribute( "filenames"、filenames); request.getRequestDispatcher( "download.jsp")。 } catch(例外e){}}} index.jsp
<%@ page Language = "Java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <! <html> <head> <メタhttp-equiv = "content-type" content = "text/html; charset = utf-8"> <title>挿入タイトル<br> file 2:<入力タイプ= "file" name "name =" file2 "/> <br> uploader:<入力タイプ=" text "name =" uploader "/> <br>日付:<入力タイプ="テキスト "name =" date "/> <br>
download.jsp
<%@ page Language = "Java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> < Import = "Java.util.List"%> <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <タイトル>ここに挿入</title> </head> <body> <br> -------------- )request.getTribute( "filenames"); for(string filename:filenames){%> <form action = "fileupload" method = "get"> <input type = "hidden" name = "filename" value = "<%= filename%>" /> <inputタイプ= "" value = " filenames){%> <form action = "fileupload" method = "get"> <input Type = "hidden" name = "fileName" value = "<%= filename%>" /> <input type = "hidden" name = "online" value = "yes" /> <inputタイプ= "submit" "value =" open:<%> <%> < </html>この記事は「Javaアップロード操作技術の要約」にまとめられており、誰もが学習して読むことを歓迎します。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。