我需要从我的图库中选择一张图片,然后放到我的baasbox服务器上。为此,我需要一个图像的输入流。
BaasBox Docs报告如下:
InputStream data = ...; // input stream to upload
BaasFile file = new BaasFile();
file.upload(data, new BaasHandler<BaasFile>() {
@Override
public void handle(BaasResult<BaasFile> baasResult) {
if( baasResult.isSuccess() ) {
Log.d("LOG","File uploaded with permissions");
} else {
Log.e("LOG","Deal with error",baasResult.error());
}
}
});
所以,我在网上搜索了怎么能做到这一点。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private int PICK_IMAGE_REQUEST = 1;
private Button buttonChoose;
private Button buttonUpload;
private Button buttonView;
private ImageView imageView;
private Bitmap bitmap;
private Uri filePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonChoose = (Button) findViewById(R.id.buttonChoose);
buttonUpload = (Button) findViewById(R.id.buttonUpload);
buttonView = (Button) findViewById(R.id.buttonViewImage);
imageView = (ImageView) findViewById(R.id.imageView);
buttonChoose.setOnClickListener(this);
buttonUpload.setOnClickListener(this);
//omitted information about baasbox init and login with a admin user
private void showFileChooser() { //dal tutorial
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
filePath = data.getData();
Log.d("log","Uri is: " + filePath.toString());
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
imageView.setImageBitmap(bitmap);
Log.d("log","upload started!");
uploadToBB(filePath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void uploadToBB(Uri filePath){
FileInputStream in;
BufferedInputStream buf;
try {
in = new FileInputStream(filePath.toString());
buf = new BufferedInputStream(in);
Bitmap bMap = BitmapFactory.decodeStream(buf);
InputStream data = getContentResolver().openInputStream(filePath);// input stream to upload
BaasFile file = new BaasFile();
file.upload(data, new BaasHandler<BaasFile>() {
@Override
public void handle(BaasResult<BaasFile> baasResult) {
if( baasResult.isSuccess() ) {
Log.d("LOG","File uploaded with permissions");
} else {
Log.e("LOG","Deal with error",baasResult.error());
}
}
});
if (in != null) {
in.close();
}
if (buf != null) {
buf.close();
}
} catch (Exception e) {
Log.e("Error reading file", e.toString());
}
}
所以,当它开始时,我从gallery中选择一张图片并上传到b()start。。但它在运行时会返回以下错误代码(应用程序不会崩溃):
D/log: Uri is:content://com.android.providers.media.documents/document/image: 30947
日志:上传开始了!
E/错误
有必要将InputStream放入baasBox upload()方法中。你能帮助我吗?谢谢
in = new FileInputStream(filePath.toString());
这不是在Uri
上获取InputStream
的方式。使用:
in = getContentResolver().openInputStream(filePath);
正如您在本代码后面所说的。
我正试图为我的应用程序保存和编写一个包含一些数据的XML文件,但当它试图打开该文件时,它给出了一个java。伊奥。FileNotFoundException。 我用来保存XML文件的代码是: 我用来读取文件的代码是: 它给出的逻辑是: 有人知道如何解决这个问题吗?提前谢谢 编辑:整个写代码是:(抱歉,有些名字和注释是荷兰语) 整个读取代码是:
null 我在用这个代码 但我一直得到这个错误
当使用意图选择图像时,我会得到一个无法打开文件的URI。如果我尝试打开文件,如下所示: 它给出了以下例外情况: <代码>/文档/图像: 9537 似乎确实是一条不正确的路径,但是我如何获得正确的路径呢? 我用这个逻辑打开图像拾取器: 然后在onActivityResult中检索Uri,如下所示: 我需要对文件进行解码,使其变小。
方法总是给出这样的错误: 打开失败:ENOENT(没有这样的文件或目录)
我有一个错误: 警告:require_once(../questionTypes/Question.php):无法打开流:第25行的/home/u949913003/public_html/includes/essential.php中没有此类文件或目录 致命错误:require_once():无法在/home/u949913003/public_html/includes/essential.p
我正在尝试编写一个Android应用程序,它将解析一个. owl文件(OWL文件)并显示类和子类。当我尝试打开文件时,我一直得到以下异常。 以下是我的Android代码: 我在项目的父目录中有文件“antiminaties.owl”。我正在模拟器上运行这个项目。 我如何摆脱这个异常并解析OWL文件?我仍然是Android编程的初学者。