【问题标题】:Parse.com JavaScript SDK uploading file from urlParse.com JavaScript SDK 从 url 上传文件
【发布时间】:2016-02-04 11:24:44
【问题描述】:

我正在尝试使用 JavaScript SDK 将用户个人资料图片上传到 parse.com,但我被困在引用媒体文件中。我能找到的所有教程和文档都指向“上传本地文件”,但我正在尝试从 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”变量是一个字符串,我迷路了。感谢您提前提供任何帮助。

【问题讨论】:

    标签: javascript url parse-platform upload media


    【解决方案1】:

    我找到了解决办法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多