フォームフォームを使用してファイルをアップロードするフォームを常にアップロードしていました。また、JSを使用してファイルをアップロードする人もいますが、それは非常に簡単に思えますので、あまり注意を払いませんでした。今日、私は突然この方法を使用してファイルをアップロードしたかったので、この期間中にいくつかの問題に遭遇しました。したがって、将来そのような問題に遭遇した場合に確認できるように記録されます。
最初のことは、JSおよびAjaxFileuploadファイルを導入することです。
次に、Ajaxが背景アドレスを要求しています。コードは次のとおりです。
<div> <入力タイプ= "ファイル" id = "upload" name = "upload" style = "font-size:0; opacity:0; width:100%; height:100%; position:absolute; left:0; top:0;"/> <span> select file </span> </div> $( "#upload")。 '/test/user/imgupload'、//バックエンドアドレスタイプ: 'post'、//カスタムパラメーターを送信する場合、このパラメーターはsecureuriを投稿する必要があります。 「JSON」、サーバーによって返されるデータ型、JSON、HTMLは、JSONが自動的に判断します。 }、function(json、e){//送信後に自動的に実行される}});フロントエンドコードが完了すると、背景コードが開発されます。
パッケージcom.roc.test; Import java.io.file; import java.util.list; Import javax.servlet.http.httpservletrequest; Import javax.servlet.http.httpservletresponse; import javax.ws.Rs.Consumes; import javax.ws.rs.-patrid.ws.rs.-patrid.ws.patrismes; Javax.Ws.Rs.Produces; Import Javax.Ws.Rs.QueryParam; Import Javax.Ws.Rs.Core.Context; Import Javax.Ws.Rs.Core.Mediatype; Import Net.sf.jsonObject; Import org.apache.commons.fileuad.filead.filead.filead.filead.filead.filead.filead.filead.filead.filead.filead.filead.filead.filead.filead.filead. apache.commons.fileupload.disk.diskfileitemfactory; Import org.apache.commons.fileupload.servlet.servletfileupload; import org.jboss.resteasy.annotations.providers.jaxb.json.badgerfish; net.sf.json.jsonobject;/** * upload file * @author liaowp * */ @controller @path( "/user")public class uploadimg { @path( "/imgupload")@post @produces( "application/json; charset = utf-8") jsonObject upload(@queryparam( "orderid")string orderid、@context httpservletrequest request、@context httpservletresponse応答){jsonobject jsonobj = new jsonobject(); string file_path = request.getSession()。getServletContext()。getRealPath( "/")+file.separator+"corpfile"+file.separator; //ファイルストレージパス文字列upload_file_path = ""; file file = new file(file_path); if(!file.exists()&&!file.isdirectory()){//フォルダーが存在しない場合は、file.mkdir()を作成します。 upload_file_path = file_path; } else {upload_file_path = file_path; } diskFileItemFactory Factory = new DiskFileItemFactory(); // Factory Factory.setRepository(new file(file_path)); //ファイルストレージ場所Factory.setsizethReshold(2048 * 1024); //設定サイズ、ファイルが設定サイズよりも小さい場合、それがメモリに置かれている場合、それがメモリに置かれます。 upload.setheaderencoding( "utf-8"); //これは、中国のファイル名を処理するためのコードです。実際、1行の文字列filename = "";リスト<FileItem>リスト; jsonobject jsonobj = new jsonobject(); try {list = upload.parserequest(request); for(fileitem item:list){if(item.isformfield()){string name = item.getFieldName(); string value = item.getString( "utf-8"); } else {string name = item.getFieldName(); string value = item.getName(); filename = name + ".jpg"; if(item.getSize()> 10485760){//こんにちは、アップロードファイルは10m未満でなければなりません! jsonobj.put( "retcode"、 "100"); jsonobj.put( "retmsg"、 "hello、fileのアップロードは10m未満でなければなりません!"):} else {// upload upload upload upload upload upload uplody System.out.println(file.separator + "corpfile" + file.separator + filename); jsonobj.put( "retcode"、 "0"); jsonobj.put( "retmsg"、 "hello、upload upload!"); }}}}} catch(例外e){// failed e.printstacktrace();アップロード; jsonobj.put( "retcode"、 "9999"); jsonobj.put( "retmsg"、 "hello、file upload failed"); } jsonobjを返します。 }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。