在Android中浏览并上传pdf或word文件

问题描述 投票:0回答:1
private void getDocument()
{
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("application/msword,application/pdf");
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    // Only the system receives the ACTION_OPEN_DOCUMENT, so no need to test.
    startActivityForResult(intent, REQUEST_CODE_DOC);
}

@Override
protected void onActivityResult(int req, int result, Intent data)
{
    // TODO Auto-generated method stub
    super.onActivityResult(req, result, data);
    if (result == RESULT_OK)
    {
        Uri fileuri = data.getData();
        docFilePath = getFileNameByUri(this, fileuri);
    }
}

// get file path

private String getFileNameByUri(Context context, Uri uri)
{
    String filepath = "";//default fileName
    //Uri filePathUri = uri;
    File file;
    if (uri.getScheme().toString().compareTo("content") == 0)
    {
        Cursor cursor = context.getContentResolver().query(uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA, MediaStore.Images.Media.ORIENTATION }, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

        cursor.moveToFirst();

        String mImagePath = cursor.getString(column_index);
        cursor.close();
        filepath = mImagePath;

    }
    else if (uri.getScheme().compareTo("file") == 0)
    {
        try
        {
            file = new File(new URI(uri.toString()));
            if (file.exists())
                filepath = file.getAbsolutePath();

        }
        catch (URISyntaxException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    else
    {
        filepath = uri.getPath();
    }
    return filepath;
}

我正在创建一个Android移动应用程序,用户可以在其中上传他的简历(PDF形式或Word形式),然后可以将其发送到服务器。

我使用此代码附加/上传PDF或Word文件,但是当我在Android Studio中运行该应用程序时,无法单击附件按钮。我该如何解决?

android pdf ms-word attachment
1个回答
0
投票
public class RegisterActivity extends AppCompatActivity {
    ImageButton btnAttach;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        getSupportActionBar().setTitle("Registeration");

        btnAttach = (ImageButton) findViewById(R.id.attachImageButton);

        // view products click event
        btnAttach.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // Launching All products Activity
                Intent i = new Intent(getApplicationContext(), RegisterActivity.class);
                startActivity(i);

            }
        });
    }


    public void attachImageButton_OnClick(View view) {
        Intent intent = new Intent(this, RegisterActivity.class);
        startActivity(intent);
    }


    private void getDocument()
    {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("application/msword,application/pdf");
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        // Only the system receives the ACTION_OPEN_DOCUMENT, so no need to test.
//        startActivityForResult(intent, REQUEST_CODE_DOC);
    }


    @Override
    protected void onActivityResult(int req, int result, Intent data)
    {
        // TODO Auto-generated method stub
        super.onActivityResult(req, result, data);
        if (result == RESULT_OK)
        {
            Uri fileuri = data.getData();
         // docFilePath = getFileNameByUri(this, fileuri);
        }
    }

// get file path

    private String getFileNameByUri(Context context, Uri uri)
    {
        String filepath = "";//default fileName
        //Uri filePathUri = uri;
        File file;
        if (uri.getScheme().toString().compareTo("content") == 0)
        {
            Cursor cursor = context.getContentResolver().query(uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA, MediaStore.Images.Media.ORIENTATION }, null, null, null);
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

            cursor.moveToFirst();

            String mImagePath = cursor.getString(column_index);
            cursor.close();
            filepath = mImagePath;

        }
        else
        if (uri.getScheme().compareTo("file") == 0)
        {
            try
            {
                file = new File(new URI(uri.toString()));
                if (file.exists())
                    filepath = file.getAbsolutePath();

            }
            catch (URISyntaxException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        else
        {
            filepath = uri.getPath();
        }
        return filepath;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.