如何使用httppost FileEntity与PHP服务器一起上传文件

时间:2012-07-02 10:09:19

标签: java php

客户端上的我的java代码是:

FileEntity entity = new FileEntity(zipfile, contentType);
post.addHeader(entity.getContentType());
post.setEntity(entity);
HttpResponse response = httpclient.execute(post);

我想在apache服务器上使用PHP接收它。 我不知道如何在php函数$_FILES[" "]["tmp_name"]中设置move_uploaded_file($_FILES[" "]["tmp_name"],$upload_file)中的第一个值。 我见过其他人问过同样的问题。但答案显然不够明确。我在等你的回答,非常感谢!

1 个答案:

答案 0 :(得分:0)

我准备好了自己的测试,并且已经通过下载apache httpclient在android上完成了,但这对您的案例来说应该是个问题。

我将httpclient.jar和httpmime.jar包含在' libs' -folder中。

最重要的是在multipart-message的mime-part上设置part-name。这是你的第一部分。 php阵列。

        HttpClient httpclient = new DefaultHttpClient();
        httpclient.getParams().setParameter(
                CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

        HttpPost httppost = new HttpPost(url_string);
        File file = new File(file_string);

        MultipartEntity mpEntity = new MultipartEntity();
        ContentBody cbFile = new FileBody(file);
        mpEntity.addPart("userfile", cbFile);

        httppost.setEntity(mpEntity);
        System.out
                .println("executing request " + httppost.getRequestLine());
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity resEntity = response.getEntity();

        StatusLine statusLine = response.getStatusLine();
        System.out.println(statusLine);
        if (resEntity != null) {
            System.out.println(EntityUtils.toString(resEntity));
        }
        if (resEntity != null) {
            resEntity.consumeContent();
        }

        httpclient.getConnectionManager().shutdown();

        return statusLine != null ? statusLine.getStatusCode() : 0;