Как добавить несколько типов Mime для залпа MultipartEntityBuilder - PullRequest
0 голосов
/ 29 ноября 2018

Я должен загрузить изображения / аудио / видео / PDF ... и т. Д. Файлы на мой сервер, используя залп MultipartEntityBuilder, и я использую приведенный ниже код для установки Mimetype, но я получаю исключение, как показано ниже

Может кто-нибудьПомогите мне пожалуйста, как я могу добавить несколько типов Mime?

код:

    /**
     *buildMultipartEntity
     */
    private void buildMultipartEntity() {

        if (mParams != null) {
            for (Map.Entry<String, String> entry : mParams.entrySet()) {
                mBuilder.addTextBody(entry.getKey(), entry.getValue());
            }
        }

        if (mFileParams != null) {

            for (Map.Entry<String, List<File>> entry : mFileParams.entrySet()) {

                List<File> listFiles = entry.getValue();

                for (File file : listFiles) {

                        String[] mimeTypes = {"image/*", "application/pdf"};
                        mBuilder.addBinaryBody(entry.getKey(), file, ContentType.create(String.valueOf(mimeTypes),""),
                                file.getName());

                }
            }
        }
        mBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
    }
}

Ошибка:

java.lang.IllegalArgumentException: MIME type may not contain reserved characters
2018-11-29 11:14:52.955 18868-18868/com.karvyinnotech.claimsportal W/System.err:     at org.apache.http.util.Args.check(Args.java:36)
2018-11-29 11:14:52.955 18868-18868/com.karvyinnotech.claimsportal W/System.err:     at org.apache.http.entity.ContentType.create(ContentType.java:176)
2018-11-29 11:14:52.955 18868-18868/com.karvyinnotech.claimsportal W/System.err:     at org.apache.http.entity.ContentType.create(ContentType.java:204)
2018-11-29 11:14:52.955 18868-18868/com.karvyinnotech.claimsportal W/System.err:     at com.karvyinnotech.claimsportal.restapi.MultipartAPI.buildMultipartEntity(MultipartAPI

1 Ответ

0 голосов
/ 29 ноября 2018

использовать MIME-тип "*/*" он будет принимать все типы файлов

var fileBody = ProgressRequestBody(fileToUpload, "*/*", this)

        photos = MultipartBody.Part.createFormData(key, fileToUpload.name, fileBody)

Как и при модификации, я делаю объект RequestBody, как указано выше, и он принимает любой тип файла

...