在解析数据浏览器中看不到该文件

时间:2014-08-11 16:14:50

标签: android parse-platform

我正在尝试实现简单的文件上传,并将文件与当前用户相关联。 我按照parse.com上的指南进行了检查,并在这里检查了几个问题但没有运气。

saveinBackground操作成功,没有抛出异常,但我在Parse.com数据浏览器中看不到该文件。

这是我的代码。

        final long time1 = Time;
    //Image part
    //upload the .jpg file for user's history
    //Parse
    byte[] data = filePath.getBytes();
    final ParseFile file = new ParseFile("asdasd.jpg", data);
    file.saveInBackground(new SaveCallback() {
        public void done(ParseException e) {
            // Handle success or failure here ...
            if ( e == null){
                ParseObject rentedTime = new ParseObject("Time");
                rentedTime.put("duration", renttime1);
                rentedTime.put("owner", ParseUser.getCurrentUser());
                rentedTime.put("id", id);
                rentedTime.put("image", file);
                rentedTime.saveInBackground(new SaveCallback() {
                    @Override
                    public void done(ParseException e) {
                        if (e == null)
                            Log.d("upload successful" + file.getName(), null);
                    }
                });
            } else {
                Log.d("terrible", e.getMessage());
            }
        }
    }, new ProgressCallback() {
        public void done(Integer percentDone) {
            // Update your progress spinner here. percentDone will be between 0 and 100.
        }
    });
}

我错过了什么?

1 个答案:

答案 0 :(得分:0)

那是因为你没有上传文件..见

(define outport (open-output-file "testfile"))  
(display "abcde" outport)  
(newline outport)  
(display "01234" outport)  
(newline outport)  
(close-output-port outport)

只是从文件路径获取字节不会合理地工作。

首先获取位图,然后将其转换为byte [],看看如何...

 byte[] data = filePath.getBytes();

现在您可以使用数据..

Bitmap bitmap = BitmapFactory.decodeFile(filePath);
byte[] data  = getBytes(bitmap);

private byte[] getBytes(Bitmap bitmap) {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
    byte[] data = outputStream.toByteArray();

    try {
        outputStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return data;
}

如果你希望以jpg格式保存,那么我已经将文件名改为.png格式,然后以.JPG格式压缩。

希望您觉得这很有帮助! :)