android通过http传输文件到servlet
java.lang.NoClassDefFoundError代码部分来自网络,这里引用的是apache给的开源jar包,实现很方便的,(commons-httpclient-3.1android客户端使用),(commons-fileupload-1.2.2,commons-io-2.4,servlet的使用,记得把后面两个jar包放在 C:\Program Files\Java\jdk1.7.0_09\jre\lib\ext目录下)
下面贴贴代码吧:
httpclict如下:
下面是servlet代码:
import java.io.File ;import java.io.IOException ;import java.util.Iterator ;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.disk.DiskFileItemFactory ;import org.apache.commons.fileupload.servlet.ServletFileUpload ;public class TestServlets extends HttpServlet{private StringuploadPath= "D:\\temp" ;// 上传文件的目录private StringtempPath= "d:\\temp\\buffer\\" ;// 临时文件目录private FiletempPathFile ;public void init( ) throws ServletException{File uploadFile = new File ( uploadPath ) ;if ( ! uploadFile.exists ( ) ){uploadFile.mkdirs ( ) ;}File tempPathFile = new File ( tempPath ) ;if ( ! tempPathFile.exists ( ) ){tempPathFile.mkdirs ( ) ;}}public void doPost( HttpServletRequest request ,HttpServletResponse response ) throws ServletException ,IOException{try{// Create a factory for disk-based file itemsDiskFileItemFactory factory = new DiskFileItemFactory ( ) ;// Set factory constraintsfactory.setSizeThreshold ( 4096 ) ; // 设置缓冲区大小,这里是4kbfactory.setRepository ( tempPathFile ) ;// 设置缓冲区目录// Create a new file upload handlerServletFileUpload upload = new ServletFileUpload (factory ) ;// Set overall request size constraintupload.setSizeMax ( 4194304 ) ; // 设置最大文件尺寸,这里是4MBList < FileItem > items = upload.parseRequest ( request ) ;// 得到所有的文件Iterator < FileItem > i = items.iterator ( ) ;while ( i.hasNext ( ) ){FileItem fi = ( FileItem ) i.next ( ) ;String fileName = fi.getName ( ) ;if ( fileName != null ){File fullFile = new File (fi.getName ( ) ) ;File savedFile = new File ( uploadPath ,fullFile.getName ( ) ) ;fi.write ( savedFile ) ;}}System.out.print ( "upload succeed" ) ;}catch ( Exception e ){System.out.println ( e.getMessage ( ) ) ;// 可以跳转出错页面e.printStackTrace ( ) ;}}}点击打开链接,点击这个是jar包的下载地址,我已经上传csdn了