<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>13.0.1</version>
<type>jar</type>
</dependency>
Client (Java Application)HttpMultipleFileUpload.java
package com.blogspot.na5cent.client;
import java.io.File;
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.MultipartPostMethod;
public class HttpMultipleFileUpload {
private static String url = "http://192.168.1.104:8080/MyProject/FileUpload";
public static void main(String[] args) throws IOException {
HttpClient client = new HttpClient();
MultipartPostMethod mPost = new MultipartPostMethod(url);
client.setConnectionTimeout(30000);
//get files for upload
File f1 = new File("c:\\temp\\client\\","java.txt");
File f2 = new File("c:\\temp\\client\\","html.txt");
File f3 = new File("c:\\temp\\client\\","php.txt");
mPost.addParameter(f1.getName(), f1);
mPost.addParameter(f2.getName(), f2);
mPost.addParameter(f3.getName(), f3);
client.executeMethod(mPost);
mPost.releaseConnection();
}
}
web application
<form name="form"
action="http://192.168.1.104:8080/MyProject/FileUpload"
method="post"
enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="upload"/>
</form>
Server (Java Servlet)FileUpload.java
package com.blogspot.na5cent.server;
import com.google.common.io.Files;
import com.google.common.io.InputSupplier;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class FileUpload extends HttpServlet {
private static final File DIRECTORY_UPLOAD = new File("c:\\server\\uploads");
static{
if (!DIRECTORY_UPLOAD.exists()) {
DIRECTORY_UPLOAD.mkdir();
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List<FileItem> fileUploadItems = upload.parseRequest(request);
for (FileItem item : fileUploadItems) {
copyFile(item);
}
} catch (FileUploadException ex) {
System.out.println(ex.getMessage());
}
}
public void copyFile(final FileItem item)
throws IOException {
Files.copy(new InputSupplier<inputstream>() {
@Override
public InputStream getInput() throws IOException {
return item.getInputStream();
}
}, new File(DIRECTORY_UPLOAD,item.getName()));
}
}
web.xmlเพิ่มดังต่อไปนี้ลงไป
<servlet>
<servlet-name>File Upload</servlet-name>
<servlet-class>com.blogspot.na5cent.server.FileUpload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>File Upload</servlet-name>
<url-pattern>/FileUpload</url-pattern>
</servlet-mapping>
แค่นี้ก็เป็นอันเรียบร้อย
ไม่มีความคิดเห็น:
แสดงความคิดเห็น