我正在尝试实现简单的文件上传,并将文件与当前用户相关联。 我按照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.
}
});
}
我错过了什么?
答案 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格式压缩。
希望您觉得这很有帮助! :)