проблема с загрузкой файла с Android с помощью multipart - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть следующий код для отправки файла (файл mpeg - около 20 КБ) с телефона на сервер.Тем не менее, это не на стороне сервера.Может ли кто-нибудь любезно сказать мне, какую ошибку я совершаю на стороне клиента?Спасибо.

ByteArrayOutputStream bos = new ByteArrayOutputStream();
        //bm.compress(CompressFormat.JPEG, 75, bos);
        byte[] data = bos.toByteArray();
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost postRequest = new HttpPost("http://example.com/upload.php");
        File file= new File("/mnt/sdcard/enca/aha.mpeg");
        FileBody bin = new FileBody(file);
        MultipartEntity reqEntity = new     MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
        reqEntity.addPart("uploaded", bin);
        reqEntity.addPart("random", new StringBody(encameo1.random));
        reqEntity.addPart("fingerPrint", new StringBody(encameo1.fingerprint));
        postRequest.setEntity(reqEntity);
        HttpResponse response = httpClient.execute(postRequest);
        BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
        String sResponse;
        StringBuilder s = new StringBuilder();

        while ((sResponse = reader.readLine()) != null) {
            s = s.append(sResponse);
        }
        System.out.println("Response: " + s);

php код:

<?php



$target_path = "uploaded_files/";

$target_path = $target_path . basename( $_FILES['userfile']['name']); 

if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_path)) 
{

    echo "The file ".  basename( $_FILES['userfile']['name'])." has been uploaded";

} 

else
{

    echo "There was an error uploading the file, please try again!";

}



?>

1 Ответ

4 голосов
/ 27 сентября 2011

Вы отправляете деталь с именем uploaded:

reqEntity.addPart("uploaded", bin);

Однако PHP ожидает деталь с именем userfile:

if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_path)) 

Выровняйте еебыть таким же.

...