Измените имя файла прямо перед загрузкой на сервер - PullRequest
0 голосов
/ 30 ноября 2011

Мне нужно загрузить изображение на сервер под определенным именем, но в идеале я бы хотел сохранить изображение на устройстве под оригинальным именем файла.Вот что я попробовал:

myImageFile.renameTo(new File("mobileimage.jpg"));

, но когда файл был загружен на сервер, у него не появилось новое имяВот полный код, который загружает изображение на сервер:

        DefaultHttpClient mHttpClient;
    HttpParams params = new BasicHttpParams();
    params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
    mHttpClient = new DefaultHttpClient(params);

    try {
        myImageFile.renameTo(new File("mobileimage.jpg"));

        HttpPost httppost = new HttpPost("http://mywebsite/mobile/image");

        MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);  
        multipartEntity.addPart("userID", new StringBody(Constants.userID));
        multipartEntity.addPart("uniqueMobileID", new StringBody(Constants.uniqueMobileID));
        multipartEntity.addPart("userfile", new FileBody(myImageFile));
        httppost.setEntity(multipartEntity);

        HttpResponse response = mHttpClient.execute(httppost);
        String responseBody = EntityUtils.toString(response.getEntity());

        Log.d(TAG, "response: " + responseBody);
        return responseBody;

    } catch (Exception e) {
       Log.d(TAG, e.getMessage());
    }

Как я могу изменить имя файла?

Ответы [ 3 ]

6 голосов
/ 30 ноября 2011

Используйте конструктор FileBody, который принимает fileName в качестве аргумента

1 голос
/ 30 ноября 2011

Попробуйте использовать другую реализацию addPart при присоединении файла, чтобы вы могли добавить поле имени файла в HTTP-запрос. Примерно так:

FormBodyPart userFile = new FormBodyPart("userfile", new FileBody(myImageFile));
userFile.addField("filename","NEWNAMEOFILE.jpg");
multipartEntity.addPart(userFile);
0 голосов
/ 30 ноября 2011

Возможно ли, что renameTo () возвращает false?Вы должны проверить ваши возвращаемые значения, особенно с renameTo ().

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