1

我能够打开文件资源管理器并在 DocumentFile 对象中获取文件,但我坚持下一步,即。将文件作为多部分发送。

第一步:打开文件资源管理器

    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("*/*");

    try {
        startActivityForResult(
                Intent.createChooser(intent, "Select a File to Upload"),
                FILE_SELECT_CODE);
    } catch (android.content.ActivityNotFoundException ex) {
        // Potentially direct the user to the Market with a Dialog
        MainApplication.displayToast(context, "Please install a File Manager.", 1);
    }

第 2 步:在 onActivityResult() 中获取文件

DocumentFile documentFile = DocumentFile.fromSingleUri(context, data.getData());

                File file = new File(documentFile.getUri().getPath());
                if(documentFile != null){
                    RequestBody docType = RequestBody.create(MediaType.parse("multipart/form-data"), viewModel.docTypeID.getValue());
                    RequestBody userId = RequestBody.create(MediaType.parse("multipart/form-data"), SharedPrefUtil.getPreference(SharedPrefUtil.USER_ID));
                    RequestBody filename = RequestBody.create(MediaType.parse("multipart/form-data"), documentFile.getName().split("\\.")[0]);

                    MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", documentFile.getName(), RequestBody.create(MediaType.parse("/*"), file));

                    viewModel.filePart.setValue(filePart);
                    viewModel.docType.setValue(docType);
                    viewModel.userID.setValue(userId);
                    viewModel.docName.setValue(filename);
                    viewModel.fileName.setValue(documentFile.getName());
                }else {
                    MainApplication.displayToast(context, "Please Select a Document.", 0);
                }

在上述步骤中,我无法发送文件,因为服务器抛出此错误FileNotFoundException. open failed: ENOENT (No such file or directory)

4

0 回答 0