从Unity上传到Parse会导致文件损坏

本文关键字:文件 损坏 Parse Unity | 更新日期: 2023-09-27 18:04:54

我正试图弄清楚如何从统一上传图像到解析,但没有运气?我想我这样做是正确的,但一定是错过了什么?

我是这样做的:

void ConvertTexture2D(){
    byte[] data = userImage.EncodeToPNG();
    ParseFile file = new ParseFile("user.png", data);
    Task saveTask = file.SaveAsync();
    ParseQuery<ParseObject> query = ParseObject.GetQuery("Players");
    query.GetAsync(Constant.ParseID).ContinueWith(t =>
                                                  {
        PlayerData = t.Result;
        UpdateOldUser(file);
    });
}
void UpdateOldUser(ParseFile file){
    PlayerData.SaveAsync().ContinueWith(t =>
                                        {
        PlayerData["profileimg"] = file;
        PlayerData.SaveAsync();
    });
}

userImage是一个Texture2D。

结果如下:http://files.parse.com/c8f1e3e7-d8e6-4fba-84c3-168d0153350d/dc1001fb-db2d-43bc-934d-ca70c0b8198e-user.png

我真的希望能在这件事上得到快速的帮助。我被困在这里:-/

提前感谢;-)

从Unity上传到Parse会导致文件损坏

文件未损坏。一切都很顺利。只是Parse数据浏览器没有显示带有正确http标头的图像。您可以通过使用wget:

抓取图像来验证图像。
wget http://files.parse.com/c8f1e3e7-d8e6-4fba-84c3-168d0153350d/dc1001fb-db2d-43bc-934d-ca70c0b8198e-user.png

我可以看到这是一张向窗外看的照片。

你应该在调用PlayerData. saveasync ().ContinueWith

之前设置PlayerData
void UpdateOldUser(ParseFile file){
PlayerData["profileImage"] =file;
            PlayerData.SaveAsync ().ContinueWith (task => {

                if (task.IsCanceled) {
                    // the save was cancelled.
                } else if (task.IsFaulted) {

                        // print parse exception
                        foreach(var e in task.Exception.InnerExceptions) {
                            ParseException parseException = (ParseException) e;
                            Debug.Log("Error message " + parseException.Message);
                            Debug.Log("Error code: " + parseException.Code);
                        }
                } else {
                }
            });
       }