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

Я занимаюсь разработкой кроссплатформенного приложения с использованием nativescript. У меня проблема с получением выбранного пользователем изображения из галереи, из библиотеки, которую я использовал, возвращался путь выбранного изображения. Это очень легко в Android, это мой код для создания файла для выбранного пользователем изображения, которое я использовал в Android.

String File_Path = "/storage/emulated/0/Pictures/Screenshots/Screenshot_20171016-173404.png"
File file = new File(File_Path);

Причина, по которой мне нужно создать файл выбранного пользователем изображения, заключается в том, что мне нужно отправить выбранное пользователем изображение в виде файла в Multipar/FormData. Я пробовал много способов, не могу найти решение. Любое предложение с благодарностью.

Спасибо

Это мой пример кода для формданных

2 ответа

Используйте http-фон nativescript, укажите путь к этой функции

viewModel.uploadImage = function (imageUrl) {
        var token = applicationSettings.getString("accessToken");
        var form = new FormData();
        form.append("file", imageUrl);

        var bghttp = require("nativescript-background-http");

        var session = bghttp.session("image-upload");

        var request = {
            url: <url>,
            method: "POST",
            headers: {
                "Content-Type": "application/octet-stream",
                "File-Name": "somename",
                "Authorization": token
            },
            description: "image for something"
        };

        var params = [
                    { name: "somename", value: "value" },
                    { name: "fileToUpload", filename: imageUrl, mimeType: 'image/jpeg' }
                ];
        let task = session.multipartUpload(params, request);
        return task;     
    }

Ответ выше работает, однако другой вариант будет преобразовать выбранное изображение в Base64String и относиться к нему как к любой другой строке.

Для этого просто создайте новый ImageSource из пути к файлу, а затем просто использовать toBase64String метод предоставляется. Simlpy передать формат (JPG, PNG и т. Д.), И все готово

Другие вопросы по тегам