javascript - 使用解析代码将图像/文件保存到解析云中

标签 javascript java android parse-platform parse-cloud-code

我有这段代码(Java/Android)获取位图,将其转换为字节数组,然后将其放入称为“图片”的 map 中,最后通过调用“createcard”函数发送:

    public static void createCard(final String nametext, final String initialbalancetext, String databaseclass, String cardnotes, String cardtype, Bitmap picture) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    picture.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] byteArray = stream.toByteArray();
    Map<String, Object> map = new HashMap<>();
    map.put("cardname", nametext);
    map.put("balance", Double.valueOf(initialbalancetext));
    map.put("database", databaseclass);
    map.put("cardnotes", cardnotes);
    map.put("picture", byteArray);
    // Check if network is connected before creating the card
    if (CardView.isNetworkConnected) {
        ParseCloud.callFunctionInBackground("createcard", map, new FunctionCallback<String>() {
            @Override
            public void done(String s, ParseException e) {
                // COMPLETE
                CardListCreator.clearadapter();
                CardListAdapter.queryList();
            }
        });
    }

这是我的“createcard”函数 (Javascript/Parse Cloudcode)。据推测,它采用“图片”键并获取字节数组,并尝试保存它:

Parse.Cloud.define("createcard", function(request, response){
var cardname = request.params.cardname;
var balance = request.params.balance;
var database = request.params.database;
var cardnotes = request.params.cardnotes;
var picture = request.params.picture;

var picturename = "photo.jpg";
var parseFile = new Parse.File(picturename, picture);
parseFile.save().then(function(parseFile){
    var currentuser = Parse.User.current();
    var CurrentDatabase = Parse.Object.extend(database);

    var newObject = new CurrentDatabase;
    newObject.set("cardname", cardname);
    newObject.set("balance", balance);
    newObject.set("user", currentuser);
    newObject.set("cardnotes", cardnotes);
    newObject.set("cardpicture", parseFile);
    newObject.save(null, {
        success: function(newObject){
            console.log(newObject);
            response.success(newObject + " successfully created");
        }, error: function(newObject, error){
            console.log(error);
            response.error(error+" error");
        }
    })
});
});

现在我的问题是该功能根本无法正常工作。我不知道为什么我的 console.log 实际上没有记录任何东西。有人有什么想法吗?

最佳答案

我希望这段代码是你的问题。

   private void Update(){

    ParseQuery<ParseObject> query = ParseQuery.getQuery("Table Name");
    query.getInBackground(parsekey, new GetCallback<ParseObject>() {
        public void done(ParseObject gameScore, ParseException e) {


            if (e == null) {

                if(camera!=null) {
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    camera.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                    byte imageInByte[] = stream.toByteArray();
                    encodedImage = Base64.encodeToString(imageInByte, Base64.DEFAULT);
                    image = new ParseFile("image.txt", imageInByte);                  

                }else{
                    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.user_icon);
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                    byte imageInByte[] = stream.toByteArray();
                    encodedImage = Base64.encodeToString(imageInByte, Base64.DEFAULT);
                    image = new ParseFile("image.txt", imageInByte);
                }




              findViewById(R.id.editName)).getText().toString(),Profile.this);
            gameScore.put("name", ((EditText) findViewById(R.id.editName)).getText().toString().trim());
            gameScore.put("gender",gender_val);
            gameScore.put("country",country_val);
            gameScore.put("dateofbirth",((TextView) findViewById(R.id.editdate)).getText().toString().trim());
            gameScore.put("profession",profession);
            gameScore.put("image",image);

            gameScore.saveInBackground();


                Toast.makeText(Profile.this,"SuccessFull Updated",Toast.LENGTH_LONG).show();

            }else{
                Log.e("erroreeeee", DataBase.getUserObjectId(Profile.this)+"  "+e.getMessage());
            }

        }

    });
}

关于javascript - 使用解析代码将图像/文件保存到解析云中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33666814/

相关文章:

javascript - HTML Select2 与内联按钮对齐

java - 如何读取 AndroidManifest.xml(二进制)文件?

java - 当我切换到包含 fragment 的 Activity 时应用程序崩溃(二进制 XML 文件行 #10 : Binary XML file line #10: Error inflating class fragment)

javascript - JSON 调用给出的值实际上不在 .json 文件中

javascript - 使用 Javascript 转到本地 URL

java - RxJava 2 & Retrofit 2 顺序独立调用

java - 如何在Java中创建图像对象?

java - 为什么我无法在应用程序中保存数据?

java - Maven Android : java. lang.UnsupportedClassVersionError : com/android/dx/command/Main : Unsupported major. 次要版本 52.0

javascript - 如何使 firebase 对象只写数据不读?