Android ServletFileUpload.parseRequest()为HttpClient文件上载请求返回0项

Android ServletFileUpload.parseRequest()为HttpClient文件上载请求返回0项,android,servlets,androidhttpclient,Android,Servlets,Androidhttpclient,服务器代码使用ServletFileUpload: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.createLog("F:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapp

服务器代码使用ServletFileUpload:

public void doPost(HttpServletRequest request, HttpServletResponse response)  
               throws ServletException, IOException {  
        this.createLog("F:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\photolistservice\\log\\", "test.txt", "cc5zhenhua.log started");
        this.writerLogInfo(logPrint, "***************************************************************************************************");
        PrintWriter out= response.getWriter();
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if(isMultipart)
            this.writerLogInfo(logPrint, "isMultipart=true");
        else
            this.writerLogInfo(logPrint, "isMultipart=false");
        //Create a factory for disk-based file items
        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(4*1024*1024);
        // Configure a repository (to ensure a secure temp location is used)

        //ServletContext servletContext = this.getServletConfig().getServletContext();
        File repository = new File("F:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\photolistservice\\temp");
        factory.setRepository(repository);

        this.writerLogInfo(logPrint, "after factory.setRository");
        List<FileItem> items = new ArrayList<FileItem>();
        try {
        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
        this.writerLogInfo(logPrint, "after new servlet file upload");


           // Parse the request 

            items = upload.parseRequest(request);
....}

我认为您应该在android端使用如下多部分:

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(actionURL);


MultipartEntity entity = new MultipartEntity();

entity.addPart("name", new StringBody("fileName", Charset.forName("UTF-8")));
File myFile = new File(filepath);
FileBody fileBody = new FileBody(myFile);
entity.addPart("file", fileBody);
httppost.setEntity(entity);
HttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
System.out.println(response.getStatusLine());
请给我一些反馈


希望有帮助

在android中是否有任何日志?在android中,响应返回200 OK。但是,服务器似乎没有正确解析请求,图像也没有上载。日志到哪里?我是说你在写日志,最后打印的日志是什么?还是全是印刷品?谢谢。如果有机会,我会试试你的解决办法。
HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(actionURL);


MultipartEntity entity = new MultipartEntity();

entity.addPart("name", new StringBody("fileName", Charset.forName("UTF-8")));
File myFile = new File(filepath);
FileBody fileBody = new FileBody(myFile);
entity.addPart("file", fileBody);
httppost.setEntity(entity);
HttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
System.out.println(response.getStatusLine());