Загрузка файла покажет null в папке xampp - PullRequest
0 голосов
/ 20 апреля 2020

У меня проблема в Android коде для загрузки файла с Android на сервер. Загрузка успешно завершена, но в папке Xampp отображается пустой файл. Я использую модернизацию. Мой php файл работает правильно, проверяя в Почтальоне.

public class FormActivity extends AppCompatActivity  {

    Button submitt;

    Button choosefile;
    Intent fileintent;
    TextView pathshow;
    Uri returnUri;


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

        choosefile = findViewById(R.id.btn_choosefile);
        pathshow = findViewById(R.id.txt_pathshow);
        submitt = findViewById(R.id.btnsubmitform);


        submitt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                UploadFileToServer(returnUri);
            }
        });

        choosefile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                fileintent = new Intent(Intent.ACTION_GET_CONTENT);
                fileintent.setType("*/*");
                startActivityForResult(fileintent, 10);

            }
        });

    }

    private void UploadFileToServer(final Uri fileUri) {
        String PDFPATH = String.valueOf(fileintent.getData());
        File file = new File("*/*",PDFPATH);

        RequestBody file_name = RequestBody.create(MultipartBody.FORM, file.getName());
        Log.e("uploadFile: ", getContentResolver().getType(fileUri));
        RequestBody reqFile = RequestBody.create(MediaType.parse(getContentResolver().getType(fileUri)), String.valueOf(returnUri));
        MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), reqFile);


        DocumentApi api = ApiClient.getClient().create(DocumentApi.class);
        Call<ServerResponse> responseCall = api.uploadFile(file_name,body);
        responseCall.enqueue(new Callback<ServerResponse>() {
            @Override
            public void onResponse(Call<ServerResponse> call, Response<ServerResponse> response) {
                if (response.body().getSuccess()){
                    Toast.makeText(FormActivity.this, "upload successfully", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onFailure(Call<ServerResponse> call, Throwable t) {

            }
        });

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        switch (requestCode) {
            case 10:
                if (resultCode == RESULT_OK) {
                    returnUri = data.getData();
                    Cursor returnCursor =
                            getContentResolver().query(returnUri, null, null, null, null);

                    int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);

                    returnCursor.moveToFirst();

                    pathshow.setText(returnCursor.getString(nameIndex));
                }

        }
    }
}

API для загрузки файла

public interface DocumentApi {


    @Multipart
    @POST("upload_image.php")
    Call<ServerResponse> uploadFile(
            @Part("name") RequestBody name,
            @Part MultipartBody.Part file
    );

}

Как я могу решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...