使用Android将任何文件从SD卡上传到服务器

时间:2014-02-27 07:01:42

标签: java php android

我是Android新手。我试图从Android SD卡上传任何类型的文件(如音频,视频,文档,图像..格式)到PHP服务器,但我没有得到明确的代码。我得到了一些解决方案here,但他们提到现有特定类型的文件&具体路径。我想从SD卡上传所有类型的fie。

2 个答案:

答案 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;
        }