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))