ブロガーは最近、外部データに内部的にアクセスできるイントラネットプロジェクトに取り組んでいますが、外部から内部データにアクセスできないため、ファイルをアップロードできません。したがって、ブロガーは別のアプローチを取得し、アップロードされたデータを保存するために特にローカルサーバー上にフォルダーを作成します。
環境:JDK、Tomcat
1.フロントデスクにファイルをアップロードする(Ajaxをアップロード)
<入力型= "file" name = "annexurl" id = "annexurl"倍数= "倍数"/>
multiple = "倍数"が設定されている場合、複数のファイルをアップロードします
function uploadfile(){var files = document.getElementById( "annexurl")。ファイル; if(files.length!= 0){var formdata = new formdata(); for(var i = 0; i <files.length; i ++){var file = files [i]; formdata.append(file.name、file); } $ .ajax({url: 'cdc/public/savefiles'、type: 'post'、cache:false、formdata、// contentType:false、success:function(data){save(data.data)}; } else {save(); }}}ここでは、FormDataオブジェクトを使用してファイルオブジェクトをカプセル化する必要があります。 save()メソッドは、アップロード後に返されたファイルパスを保存するために使用され、簡単にダウンロードするためにデータベースに保存します。
2。バックグラウンドでファイルを受信し、サーバーにアップロードします
//複数のファイルをアップロードし、オブジェクトのコレクション(添付ファイルアドレス、名前)@RequestMapping(value = "savefiles"、method = requestmethod.post)@responsebody public jsonobject savefiles(httpservletrequest request、httpservletresponse応答){jsonobject jsonobject = new jsonobject = new jsonobject(); try {request.setcharacterencoding( "utf-8"); } catch(unsupportedencodingexception e){e.printstacktrace(); } collection <part> parts = null; try {parts = request.getParts(); } catch(ioexception e){e.printstacktrace(); } catch(servletexception e){e.printstacktrace(); } iterator <part> iterator = parts.iterator(); //名前のコレクション、フォアグラウンドリスト<string> list = new ArrayList <>()に返されます。 while(iterator.hasnext()){part part = iterator.next(); //実際に保存された実際のファイル名(一意)を生成する//理由はわかりません。ファイルアップロードには、取得したファイル名が含まれている必要があります。画像アップロード//ファイル名にそのような制限はありません。ファイル名、データベースを保存し、文字列名= part.getName()を表示するために使用します。 string realname = uuid.randomuuid()。toString() + name; list.add(name + "&&" + realname); //home/tomcat/apache-tomcat-9.0.1/files string realpath = "d:" + file.separator + "apache-tomcat-8.5.15" + file.separator + "files"; // string realpath = "c:" + file.separator + "xhj224" + file.separator + "software" + file.separator + "apache-tomcat-9.0.1" + file.separator + "files"; // string realpath = file.separator + "home" + file.separator + "tomcat" + file.separator + "apache-tomcat-9.0.1" + file.separator + "files";ファイルfile = new File(RealPath); //ディレクトリが存在しない場合(!file.isdirectory()){// file upload directory file.mkdirs();を作成します。 } //ファイルストレージストリングへの実際のパスfilepath = realpath + file.separator + realName; try {part.write(filepath); } catch(ioexception e){e.printstacktrace(); }} jsonobject.put( "data"、list); jsonobjectを返します。 }リストコレクションは、ファイル名と実際のファイル名でスプライスされた文字列を追加します。これは後で必要です。 RealNameは、複数のアップロードされたファイル名間の競合を防ぐためです。 RealPathはファイル保存パスです。異なるオペレーティングシステムには、パスが異なります。 RealPathは、プロジェクトの移植を容易にするためにTomcatの下に配置するのが最適です。
ここで、file.separatorはパスセパレーターであり、それがどのオペレーティングシステムであるかを自動的に識別し、異なるパスセパレーターを使用できます(Windowsは '/'、Linuxは '/')。最後にリストをフロントデスクに返します。
この記事は「Javaアップロード操作技術の要約」にまとめられており、誰もが学習して読むことを歓迎します。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。