我是Android新手。我试图从Android SD卡上传任何类型的文件(如音频,视频,文档,图像..格式)到PHP服务器,但我没有得到明确的代码。我得到了一些解决方案here,但他们提到现有特定类型的文件&具体路径。我想从SD卡上传所有类型的fie。
答案 0 :(得分:1)
从这个方法你可以从SD卡访问所有文件 这是我的代码
public void getAllFile(File dir) {
File listFile[] = dir.listFiles();
if (listFile != null) {
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].isDirectory()) {
getAllFile(listFile[i]);
} else {
listFile[i].getName();
System.out.println("your file is "+listFile[i].getName());
}
}
}
}
祝你好运。)
答案 1 :(得分:0)
//调用此方法从设备内存中选择文件
static Uri url;
String path;
private void showFileChooser() {
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("*/*");
i.addCategory(Intent.CATEGORY_OPENABLE);
i = Intent.createChooser(i, "Choose a file");
startActivityForResult(i, FILE_SELECT_CODE);
}
//在这里,您将获得所选文件的路径
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode==-1)
{
Log.w("Request Code", ""+requestCode);
Log.w("Result Code", ""+resultCode);
path = getRealPathFromURI( data.getData());
try {
Log.w("Intent", data.getData().toString());
} catch (Exception e) {
// TODO Auto-generated catch block
Log.w("Error", e.toString());
}
}
}
//获取文件的确切路径 - 确切路径存储在路径变量
中public String getRealPathFromURI (Uri contentUri)
{
String path = null;
String[] proj = { MediaStore.MediaColumns.DATA };
if("content".equalsIgnoreCase(contentUri.getScheme ()))
{
Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null);
if (cursor.moveToFirst()) {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
path = cursor.getString(column_index);
}
cursor.close();
return path;
}
else if("file".equalsIgnoreCase(contentUri.getScheme()))
{
return contentUri.getPath();
}
return null;
}