jspではapacheのcommens-fileupladパッケージを利用してファイルをアップロードします。
まずjarファイルのカバンをダウンロードして、apacheの公式サイトにあります。
最初のカバンはCommons IO 2.0です。 住所:http://commons.apache.org/io/
第二のカバンFileUpload 1.2.1 住所:http://commons.apache.org/fileupload/download_fileuplad.cgi
zipのカバンをダウンロードして解凍して中のjarカバンをあなたの工事libに入れてもいいです。
そしてfileupladのservletコードを作成します。
ファイルをアップロードするページのformを作成します。
注意:フォームのenctype属性はmultiiprt/form-dataに設定しなければなりません。
次にservletを設定します。
サイトのweb-INFフォルダにweb.xmlを追加します。
OK大成功~アップロードしてみてもいいです。
最初のカバンはCommons IO 2.0です。 住所:http://commons.apache.org/io/
第二のカバンFileUpload 1.2.1 住所:http://commons.apache.org/fileupload/download_fileuplad.cgi
zipのカバンをダウンロードして解凍して中のjarカバンをあなたの工事libに入れてもいいです。
そしてfileupladのservletコードを作成します。
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FileUpload extends HttpServlet {
public FileUpload() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void init() throws ServletException {
}
}
doPostメソッドでファイルアップロードコードを作成します。 if(ServletFileUpload.isMultipartContent(request)){
DiskFileItemFactory dfif = new DiskFileItemFactory();
// byte ,
dfif.setSizeThreshold( 5 * 1024 * 1024);
//
dfif.setRepository(new File("c:\\temp"));
// ServletFileUpload
ServletFileUpload servletfileupload = new ServletFileUpload(dfif);
// 50M
servletfileupload.setSizeMax(50*1024*1024);
// ServletFileUpload parseRequest FileItem
try {
List<FileItem> files = servletfileupload.parseRequest(request);
for(FileItem f:files){
if(f.isFormField()){ // ,
out.println(f.getFieldName());
out.println(f.getString("UTF-8")); // Web UTF-8 , UTF-8 。
}else{
String filename = f.getName();
filename = filename.substring(filename.lastIndexOf("."));
try {
f.write(new File("c:\\upfile\\" + (int)(Math.random()*10000000) + filename));
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
out.print("OK");
}
else{
out.print(" !");
}
doGet法では、this.doPost方法を呼び出してもいいです。例えば、this.doPost(request,reponse)。ファイルをアップロードするページのformを作成します。
注意:フォームのenctype属性はmultiiprt/form-dataに設定しなければなりません。
次にservletを設定します。
サイトのweb-INFフォルダにweb.xmlを追加します。
<servlet>
<servlet-name>Upload</servlet-name>
<servlet-class>Upload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Upload</servlet-name>
<url-pattern>/fileupload</url-pattern>
</servlet-mapping>
最後の段の上に置いてください。OK大成功~アップロードしてみてもいいです。