如何创建用户所选图像的文件

时间:2017-10-27 09:31:17

标签: nativescript

我正在使用nativescript开发跨平台应用程序,我遇到了从库中获取用户所选图像的问题,我使用的库返回用户选择的图像路径。它在android中非常容易,它是我在android中使用的用户选择图像的创建文件的代码。

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

我需要创建用户所选图像文件的原因是我需要将用户选择的图像作为Multipar / FormData中的文件发送。 我试过很多方法找不到解决方案。任何建议都非常感谢。

由于

这是我的formdata示例代码

2 个答案:

答案 0 :(得分:0)

使用nativescript background http,传递此函数的路径

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;     
    }

答案 1 :(得分:0)

上面的答案有效,但另一种选择是将所选图像转换为Base64String并将其视为任何其他字符串。

要做到这一点,只需从文件路径创建一个新的ImageSource,而不是简单地使用提供的toBase64String方法。 Simlpy传递格式(jpg,png等),你就是所有的设置