gpt4 book ai didi

android - 打开失败 :ENOENT (No such file or directory) error

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:00 31 4
gpt4 key购买 nike

我在尝试使用 amazon S3 android 库上传我用相机拍照时遇到的问题。

保存图片

File _photoFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),   (cal.getTimeInMillis() + ".jpg"));

try {
if (_photoFile.exists() == false) {
_photoFile.getParentFile().mkdirs();
_photoFile.createNewFile();
}

} catch (IOException e) {
// Log.e(TAG, "Could not create file.", e);
}
// Log.i(TAG, path);

filePath = Uri.fromFile(_photoFile);
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, filePath);
startActivityForResult(cameraIntent, 1);

上传图片的文件路径:

try {
s3Client.createBucket(Constants.getPictureBucket());

// Content type is determined by file extension.
PutObjectRequest por = new PutObjectRequest(
Constants.getPictureBucket(), Constants.PICTURE_NAME,
new java.io.File(filePath));
s3Client.putObject(por);
} catch (Exception exception) {

result.setErrorMessage(exception.getMessage());
}

我一直收到错误 Unable to calclualte MD5 hash:/file:/storage/sdcard0/DCIM/13161272646580.jpg open failed:ENOENT (No such file or directory)

但是当我浏览我的sd卡的目录时,我可以在那里找到图片(图片已经创建),并且我已经创建了相关权限。

最佳答案

问题出在您的文件路径。使用类似的方法来获取真实路径。

我给你举个例子,如果你从 onActivityResult() 获取图像您应该有一个 onActivityResult(int requestCode, int resultCode, Intent data),您可以在其中获取图像的 Uri。

Uri uri = data.getData();

然后您使用它并从 Uri 获取真实路径并将其传递给 PutObjectRequest(BUCKET_NAME, IMAGE_NAME, REAL_PATH);

public String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}

我遇到了同样的问题,我解决了这个问题。希望对您有所帮助!

关于android - 打开失败 :ENOENT (No such file or directory) error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14956249/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com