在我的应用程序中,用户可以从相机中拍照,或者从Gallery中选择并裁剪照片以发送到服务器。所以没问题。,问题是当用户从图库中选择图片时
截取摄像头的URI路径:/mnt/sdcard/avatar_1434958383404。jpg
从存储裁剪的URI路径:/external/images/media/19
错误:
IOException:/external/images/media/19:open failed:enoint(没有这样的文件或目录)
截取摄像头的URI路径:/mnt/sdcard/avatar_1434958383404。jpg
从存储裁剪的URI路径:/external/images/media/19
在API 19之后,内容URI发生了变化
content://com.android.providers.media.documents/document/image: 151323
和
/存储/3437-6630/Pics/IMG_5737。JPG
在API19之前,调用gallery意图将导致gallery。但在API 19之后,它将导致调用图像。从这里你可以进入Gallery或外部存储或Google drive。所以有可能会出现运行时异常。
主要活动。JAVA
String realPath =" ";
try {
realPath = RealPathUtil.getRealPathFromURI(this, data.getData());
}catch (RuntimeException e){
realPath = RealPathUtil.getRealPathFromURI_API19(this, data.getData());
}
在RealPathUtil中。JAVA
获取路径
public static String getRealPathFromURI(Context context,Uri contentURI) {
//Log.e("in","conversion"+contentURI.getPath());
String path;
Cursor cursor = context.getContentResolver()
.query(contentURI, null, null, null, null);
if (cursor == null)
path=contentURI.getPath();
else {
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
path=cursor.getString(idx);
}
if(cursor!=null)
cursor.close();
Log.e("GGGG CCC ",path);
return path;
}
getRealPathFromURI_API19
@SuppressLint("NewApi")
public static String getRealPathFromURI_API19(Context context, Uri uri){
String filePath = "";
String wholeID = DocumentsContract.getDocumentId(uri);
// Split at colon, use second item in the array
String id = wholeID.split(":")[1];
String[] column = { MediaStore.Images.Media.DATA };
// where id is equal to
String sel = MediaStore.Images.Media._ID + "=?";
Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
column, sel, new String[]{ id }, null);
int columnIndex = 0;
if (cursor != null) {
columnIndex = cursor.getColumnIndex(column[0]);
}
if (cursor != null && cursor.moveToFirst()) {
filePath = cursor.getString(columnIndex);
}
if (cursor != null) {
cursor.close();
}
Log.e("GGGGG FilePath",filePath);
return filePath;
}
您应该从URI获取路径。使用以下功能:
private String getRealPathFromURI(Uri contentURI) {
//Log.e("in","conversion"+contentURI.getPath());
String path;
Cursor cursor = getContentResolver()
.query(contentURI, null, null, null, null);
if (cursor == null)
path=contentURI.getPath();
else {
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
path=cursor.getString(idx);
}
if(cursor!=null)
cursor.close();
return path;
}
我在做一个简单的项目上传谷歌驱动器上的文件。然后我需要“显示”这个文件给用户,通过使用html标记,这我需要知道URL到我的图像。但我不知道怎么弄。我试着添加 https://drive.google.com/file/d/
我使用下面的代码来捕获人脸使用Haar级联分类器,但仍然没有得到完整的头部图像
问题内容: 通过带有jquery的ajax提交表单时,是否可以使用完整的服务器路径而不是url? 下面的示例不起作用,但是它将使您对我正在尝试执行的操作有所了解。我知道您无法执行跨域Ajax请求,但这都在同一台物理服务器上。 我不想设置代理或任何过于花哨的东西,如果没有办法轻松地做到这一点,我只会在服务器上移动一些文件,但我希望可能有一个简单的解决方案。 谢谢! 问题答案: 不,那行不通。这些不是
问题内容: 当我在Java 7中创建SSLServerSocket时,服务器正确使用了我的服务器证书和密钥。该证书是由ca的子ca颁发的。因此,从根证书到服务器证书的完整链有四个证书。完整的链位于密钥库/信任库中。 但是,当客户端连接服务器时,服务器始终只会自己发送服务器证书。这也适用于基于Java的Web服务器,例如Jetty。 因为大多数客户端仅安装了根ca证书,而没有安装两个子ca证书,所以
问题内容: 有没有一种简单的方法可以打印的完整路径? 的 应该打印 问题答案: 使用 readlink :
我在我的屏幕上有四个图像视图,从相机中捕获图像并显示在其中,现在我想将这些图像上传到服务器上。因此,我使用了下面的代码来获取它们的路径,但它通过了异常。是否有可能从摄像机拍摄的图像视图将图像上传到服务器(无需将图像存储到内存中)。