PHP не распознает POST-загрузку, выполненную с помощью HttpClient - PullRequest
1 голос
/ 30 сентября 2010

Java-код:

            HttpClient httpclient = new DefaultHttpClient();

        HttpPost httppost = new HttpPost(
                "http://localhost/SC/upload.php");

        FileBody bin = new FileBody(f3);

        MultipartEntity reqEntity = new MultipartEntity();
        reqEntity.addPart("bin", bin);

        httppost.setEntity(reqEntity);

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

        System.out.println("----------------------------------------");
        System.out.println(response.getStatusLine());
        if (resEntity != null) {
            System.out.println("Response content length: "
                    + resEntity.getContentLength());
            System.out.println("Chunked?: " + resEntity.isChunked());
            System.out.println("Response: "
                    + EntityUtils.toString(resEntity));
        }
        if (resEntity != null) {
            resEntity.consumeContent();
        }

PHP код:

    <?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }

print_r ($_FILES);
?> 

Каждый раз, когда я запускаю код Java, я всегда получаю:

выполнение запроса POST http://localhost/SC/upload.php HTTP / 1.1 ---------------------------------------- HTTP / 1.1 200 ОК Длина содержимого ответа: 241 Chunked ?: ложный Ответ: Загрузить:
Тип:
Размер: 0 Кб
Хранится в: Массив ( [bin] => Массив ( [name] => File.tar.lzma [тип] => [tmp_name] => [ошибка] => 1 [размер] => 0 ) ) * +1010 *

Я проверил его при нормальной загрузке http (через веб-браузер, тот же файл), и он работает.

Что я делаю не так?

РЕДАКТИРОВАТЬ: f3 это файл (который я знаю, существует, (/home/me/Desktop/File.tar.lzma))

1 Ответ

0 голосов
/ 30 сентября 2010

Оказывается, что это действительно была проблема с максимальным размером файла php, хотя при ограничении (2M) я не знал, что java-код добавляет части к файлу (в коде TAR)

Увеличение лимита исправило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...