当前位置: 首页 > 知识库问答 >
问题:

如何获取文件的Uri将文件上传到服务器?

魏安宁
2023-03-14

我正在从特定文件夹获取音频文件,并将其绑定到RecyclerView上。现在我想要每个文件的Uri,这样我就可以逐个上传它们。我正在使用光标获取文件。下面是我的代码:

   Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    String[] projection = {MediaStore.Audio.AudioColumns.SIZE,MediaStore.Audio.AudioColumns.TITLE,android.provider.MediaStore.Audio.AudioColumns.DATA,
            MediaStore.Audio.AudioColumns.DURATION,MediaStore.Audio.AudioColumns.TITLE};


    Cursor c = context.getContentResolver().query(uri, projection, MediaStore.Audio.Media.DATA + " like ? ", new String[]{"%/storage/emulated/0/Call%"},null);

    if (c != null ) {
        for (int i = 0; i < 50 && c.moveToNext(); ++i) {
            // Create a model object.
            POJO audioModel = new POJO();
            long id = c.getLong(4);
            String SIZE = c.getString(0);     // Retrieve path.
            String NAME = c.getColumnName(1); // Retrieve name.
            String PATH = c.getString(2);     // Retrieve album name.
            String DURATION = c.getString(3); // Retrieve artist name.

            Uri contentUri = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,id);

            audioModel.setSize(SIZE);
            audioModel.setName(NAME);
            audioModel.setPath(PATH);
            audioModel.setDuration(DURATION);
            audioModel.setUri(contentUri);

            Log.d("#", String.valueOf(contentUri));


            arrayListFile.add(audioModel);
        }
        c.close();
    }
     return arrayListFile;

在contentUri中,我得到了以下内容(内容://media/external/audio/media/0)。我想要的是内容://com.android.providers.media.documents/document/xyz.mp3。我该怎么办??

共有1个答案

汪建白
2023-03-14

为什么不使用mediastore.files.fileColumns.data?该路径也可用于上载到服务器。

 类似资料:
  • 问题内容: 我创建了一个从有权访问的FTP服务器下载文件的功能。如何将文件上传回FTP服务器? 以下是我使用的download_files方法: 问题答案: 使用Apache Commons Net库中的FTPClient类。 这是一个带有示例的代码段: 摘录自http://www.kodejava.org/examples/356.html

  • 问题内容: 以下是我用于将文件上传到服务器的代码。但是,即使经过几次尝试,甚至添加了严格模式,我都遇到了网络异常。 我是Android的新手,不知道如何使用异步任务,许多人建议您使用这种异步网络操作。谁能告诉我代码中哪里有错误以及应该在哪里使用异步任务? 问题答案: 有关更多信息,请参考此链接 http://vikaskanani.wordpress.com/2011/01/29/android-

  • 我们有一个要求,我们应该提供能力上传文件多达100 GB的大小。当前的流程是将文件从客户端位置/本地系统放到应用服务器。然后,应用服务器将文件推送到Google Drive server中的服务帐户。我想知道是否有办法将文件从本地系统直接推送到Google Drive中的服务帐户。这将帮助我们不必在应用服务器中存储如此大的文件。请告诉我。还想知道我们是否可以在本地系统中安装指向服务帐户的驱动器。通

  • 我已经通过Composer下载并安装了谷歌云存储PHP库,下载了JSON密钥文件,但我无法使用该库做任何事情。当我严格按照指示去做时,我只得到错误。不管怎样,这是我试图做任何事情的文件中的代码,比如列表桶文件,或者上传文件,等等...谁能告诉我我做错了什么?我真的很想在我的服务器上使用谷歌云存储来备份文件。 如果这有助于澄清,我正在使用DreamHost VPS作为我的服务器。它支持PHP7.0。

  • 我需要将文件从文件夹同步到restendpoint。因此,如果文件被放置在特定文件夹中,我需要将该文件发送到接受多部分文件的RESTendpoint。我正在使用ApacheCamel来实现这一点。 RESTendpoint在Spring中编写,如下所示: 我是Camel的新手,并且已经弄清楚了如何通过构建路由并获取文件来轮询目录,但是我无法弄清楚如何使用此路由将此文件放入其余endpoint。这是

  • 问题内容: 我将图片上传到服务器的代码是: 将图像上传到服务器工作正常。.我需要同时将mp3文件和图像上传到服务器。.请帮助 问题答案: 因此,您要在一个HTTP请求中发送多个文件?我从来没有亲自做过,但是根据RFC,只需在发送音频的消息中添加另一个正文,它应该看起来像这样: 确保两个部分的名称不同(取决于服务器软件)。