Как ограничить размер части MultipartEntity

Есть ли какой-нибудь способ ограничить размер частей, отправляемых на MultipartEntity из org.apache.http.entity.mime.MultipartEntity? Мне нужно ограничить этот размер до 2 МБ.

Спасибо!

1 ответ

При отправке любого файла вы должны уменьшить размер.

Здесь функция decodeFile() уменьшит размер изображения, когда мы преобразуем его в растровое изображение, чтобы показать выбранное изображение. Если мы отправим файл как есть, то большой размер изображения может привести к сбою приложения. вам требуется 2 МБ, да, вы можете:

public void decodeFile(String filePath) {
        // Decode image size
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(filePath, o);

        // The new size we want to scale to
        final int REQUIRED_SIZE = 2048;

        // Find the correct scale value. It should be the power of 2.
        int width_tmp = o.outWidth, height_tmp = o.outHeight;
        int scale = 1;
        while (true) {
            if (width_tmp < REQUIRED_SIZE && height_tmp < REQUIRED_SIZE)
                break;
            width_tmp /= 2;
            height_tmp /= 2;
            scale *= 2;
        }

Декодировать с помощью inSampleSize

BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
bitmap = BitmapFactory.decodeFile(filePath, o2);

imgView.setImageBitmap(bitmap);

Также, если вы хотите загрузить полноразмерное изображение, просто используйте filePath.

entity.addPart("uploaded", new FileBody(new File(filepath)));
Другие вопросы по тегам