Parse.com JavaScript SDK 从 url 上传文件
Parse.com JavaScript SDK uploading file from url
我正在尝试使用 JavaScript SDK 将用户个人资料图片上传到 parse.com,但我无法引用媒体文件。我能找到的所有教程和文档都指向 'uploading a local file',但我正在尝试从 url.
上传文件
$('#parse').on('click', function () {
Parse.initialize(xxx, yyy);
var user = new Parse.User();
user.set("username", photos.owner_name);
user.set("password", "12349876");
user.set("email", photos.owner_id + "@blabla.com");
// other fields can be set just like with Parse.Object
user.set("phone", "000-000-0000");
user.set("nameLowerCase", photos.owner_name.toLowerCase());
user.set("name", photos.owner_name);
var url = '/images/tpp.png';
user.set("profileThumbnail", url);
user.signUp(null, {
success: function (user) {
console.log(user);
},
error: function (user, error) {
alert("Error: " + error.code + " " + error.message);
}
});
});
文档向您展示了如何将文件上传到 Parse 云并使用它 url;因为我已经上传了文件,所以不需要上传到Parse云。
我知道,"url" 变量是一个字符串,我迷路了。感谢您提前提供的帮助。
我找到了解决方案:
Parse 不接受云之外的任何文件来保存对象。所以需要先上传文件到云端解析。
要上传文件以解析云,我们使用以下代码:
var parseFile = new Parse.File(filename, file);
parseFile.save().then(function (parseFile) {
url = parseFile.name();
classname.set({objectname: {"name": url, "__type": "File"}});
});
这段代码在我们上传本地文件时很有用;但是当我们想从 url 上传文件时,首先我们需要将文件编码为 base64.
下面是我的问题的完整解答:
$('#parse').on('click', function () {
Parse.initialize(xxx, yyy);
var user = new Parse.User();
user.set("username", photos.owner_name);
user.set("password", "12349876");
user.set("email", photos.owner_id + "@timeset.com");
// other fields can be set just like with Parse.Object
user.set("phone", "000-000-0000");
user.set("nameLowerCase", photos.owner_name.toLowerCase());
user.set("name", photos.owner_name);
//base64 encoder with File Reader
function base64encode(url, callback) {
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function () {
var reader = new FileReader();
reader.onloadend = function () {
callback(reader.result);
};
reader.readAsDataURL(xhr.response);
};
xhr.open('GET', url);
xhr.send();
}
base64encoder('/images/tpp.png', function (base64Img) {
imge = base64Img;
simge = imge.split(',');
simge = simge[1];
parseFile = new Parse.File("profilePicture.png", {"base64": simge});
});
parseFile.save().then(function (parseFile) {
url1 = parseFile.name();
user.set({profileThumbnail: {"name": url1, "__type": "File"}});
user.signUp(null, {
success: function (user) {
console.log(user);
// Hooray! Let them use the app now.
},
error: function (user, error) {
// Show the error message somewhere and let the user try again.
alert("Error: " + error.code + " " + error.message);
}
});
});
});
我正在尝试使用 JavaScript SDK 将用户个人资料图片上传到 parse.com,但我无法引用媒体文件。我能找到的所有教程和文档都指向 'uploading a local file',但我正在尝试从 url.
上传文件$('#parse').on('click', function () {
Parse.initialize(xxx, yyy);
var user = new Parse.User();
user.set("username", photos.owner_name);
user.set("password", "12349876");
user.set("email", photos.owner_id + "@blabla.com");
// other fields can be set just like with Parse.Object
user.set("phone", "000-000-0000");
user.set("nameLowerCase", photos.owner_name.toLowerCase());
user.set("name", photos.owner_name);
var url = '/images/tpp.png';
user.set("profileThumbnail", url);
user.signUp(null, {
success: function (user) {
console.log(user);
},
error: function (user, error) {
alert("Error: " + error.code + " " + error.message);
}
});
});
文档向您展示了如何将文件上传到 Parse 云并使用它 url;因为我已经上传了文件,所以不需要上传到Parse云。
我知道,"url" 变量是一个字符串,我迷路了。感谢您提前提供的帮助。
我找到了解决方案:
Parse 不接受云之外的任何文件来保存对象。所以需要先上传文件到云端解析。
要上传文件以解析云,我们使用以下代码:
var parseFile = new Parse.File(filename, file);
parseFile.save().then(function (parseFile) {
url = parseFile.name();
classname.set({objectname: {"name": url, "__type": "File"}});
});
这段代码在我们上传本地文件时很有用;但是当我们想从 url 上传文件时,首先我们需要将文件编码为 base64.
下面是我的问题的完整解答:
$('#parse').on('click', function () {
Parse.initialize(xxx, yyy);
var user = new Parse.User();
user.set("username", photos.owner_name);
user.set("password", "12349876");
user.set("email", photos.owner_id + "@timeset.com");
// other fields can be set just like with Parse.Object
user.set("phone", "000-000-0000");
user.set("nameLowerCase", photos.owner_name.toLowerCase());
user.set("name", photos.owner_name);
//base64 encoder with File Reader
function base64encode(url, callback) {
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function () {
var reader = new FileReader();
reader.onloadend = function () {
callback(reader.result);
};
reader.readAsDataURL(xhr.response);
};
xhr.open('GET', url);
xhr.send();
}
base64encoder('/images/tpp.png', function (base64Img) {
imge = base64Img;
simge = imge.split(',');
simge = simge[1];
parseFile = new Parse.File("profilePicture.png", {"base64": simge});
});
parseFile.save().then(function (parseFile) {
url1 = parseFile.name();
user.set({profileThumbnail: {"name": url1, "__type": "File"}});
user.signUp(null, {
success: function (user) {
console.log(user);
// Hooray! Let them use the app now.
},
error: function (user, error) {
// Show the error message somewhere and let the user try again.
alert("Error: " + error.code + " " + error.message);
}
});
});
});