我正在用原生脚本开发跨平台的应用程序,我在从图库中获取用户选择的图像时遇到了问题,我使用的库返回用户选择的图像路径。这是非常容易在android中,这是我的代码为用户选择的图像创建文件,我在android中使用。
String File_Path = "/storage/emulated/0/Pictures/Screenshots/Screenshot_20171016-173404.png"
File file = new File(File_Path);我需要创建用户选择的图像文件的原因是我需要将用户选择的图像作为文件发送到Multipar/FormData中。我试了很多方法都找不到解决方案。非常感谢您的任何建议。
谢谢
这是我的formdata示例代码
发布于 2017-10-27 17:54:01
使用nativescript后台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;
}发布于 2017-10-27 19:03:35
上面的答案是可行的,但是另一种选择是将所选图像转换为Base64String,并将其视为任何其他字符串。
为此,只需从文件路径创建一个新的ImageSource,然后使用提供的toBase64String方法即可。简单地传递格式(jpg、png等),您就都准备好了
https://stackoverflow.com/questions/46971848
复制相似问题