アップロードファイルのページupload.htmlを編集します
注:投稿をアップロードするときに使用できません(GETはファイルをアップロードできません)
フォームenctypeプロパティは、MultiPart/Form-Dataに設定する必要があります。 (送信されたデータがバイナリファイルであることを示します)
upload.html
<!doctype html> <html> <head> <meta charset = "utf-8"> <title> file upload </title> </head> </head> <body> <form action = "uploadphotoservlet" method = "post" enctype = "multipart/form-data">キャラクター名:<入力タイプ= ""/<""/<putload "/> <br < name = "filepath"/> <br> <入力タイプ= "" value = "upload"> </form> </body> </html>
uploadptotoServletファイルアップロードクラス - アップロード機能の開発
2つのJARパッケージCommons-IO-1.4.4.4.4.4.4.4.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.
java.io.file;インポートjava.io.fileoutputstream;インポートjava.io.io.ioexception; import java.io.inputstream; import java.io.io.io.util.iterator; import java.util.list; import javax.servlet.servlet.servlet.servlet.servlet.servlet.servletecept.servletexcection. javax.servlet.http.httpservlet; Import javax.servlet.http.httpservletrequest; Import javax.servlet.servlet.httpservletresponse; Import org.apache.commons.fileupload.fileitem; Import org.apache.commons.fileupload.fileuploadexception; Import org.apache.commons.fileupload.disk.diskfileitemfactory; Import org.apache.commons.fileupload.servlet.servletfileupload; */@webSverlet( "/uploadphotoServlet")public class uploadphotoservlet extends httpservlet {private static final long serialversionuid = 1l; / ** * @see httpservlet#httpservlet() */ public uploadphotoservlet(){super(); // todo auto-generated constructor stub}/** * @see httpservlet#doget(httpservletrequest request、httpservletresponse応答) Response.getWriter()。append( "ared at:").append(request.getContextPath());文字列filename = null; DiskFileItemFactory Factory = new DiskFileItemFactory(); //ディスクファイルエントリファクトリーServletFileupload upload = new servletfileupload(Factory); //アップロードされたファイルデータを処理し、フォーム内の各入力アイテムをFileItemオブジェクトにカプセル化する責任//アップロードされたファイルサイズを10m Factory.SetsizethReshold(2*1024*1024)に設定します。リストアイテム= null; try {// parse ares iteques = upload.parserequest(request); //すべてのアップロードされたコンテンツを保存するリストオブジェクトを取得} catch(fileuploadexception e){// dodo auto-fenated catch block e.printstacktrace(); } iterator iter = items.iterator(); //アップロードされたファイルデータを繰り返しますwhile(iter.hasnext()){fileItem item =(fileItem)iter.next(); if(!item.isformfield()){//アップロードされていない場合//タイムスタンプFilename = System.CurrentTimeMillis()+"。JPG"に基づいてAvatarファイルを作成します。 // getRealPathからアップロードフォルダーを取得します。プロジェクトが存在する場合、現在のプロジェクトの下に存在しません。プロジェクトフォルダー//画像フォルダー文字列photofolder = request.getServletContext()。getRealPath( "uploaded");ファイルf = newファイル(Photofolder、filename); f.getParentFile()。mkdirs(); //親フォルダーが存在しない場合、それは自動的に作成されます//ファイルを読み取り//ファイルをコピーfileoutputStream fos = new fileoutputStream(f); //インターフェイスにbyte [] b = new byte [2*1024*1024]を表示します。 int len = 0; while((len = is.read(b))!= -1){fos.write(b、0、len); } fos.close(); } else {system.out.println(item.getFieldName()); // heroname string value = item.getString(); value = new String(value.getBytes( "ISO-8859-1")、 "utf-8"); System.out.println(value); // mulberry}} string html = "<img width = '200' height = '150' src = 'uploaded/%s'/>"; Response.setContentType( "Text/HTML"); printwriter pw = respons.getWriter(); pw.format(html、filename); } / ** * @see httpservlet#dopost(httpservletrequest request、httpservletResponse応答) * /保護されたvoid dopost(httpservletrequest request、httpservletresponse応答) }}実行結果:
要約します
上記は、ファイルをサーバーにアップロードし、それに応じて機能を表示するための実装コードです。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!