2017-01-11 3 views
0

Ich habe ein Programm in Android mit Dateiauswahl erstellt Ich habe eine Datei gewählt, als danach, ich habe auf meinem Server hochgeladen alles funktioniert gut.Wie lade ich eine 10-MB-Datei in Android hoch?

Aber ich möchte nur 10 MB Datei hochladen oder möchte ein einfaches Programm, wenn meine Dateigröße mehr als 10 MB Datei kann nicht ausgewählt oder in Android hochgeladen.

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if(resultCode == Activity.RESULT_OK){ 
      if(requestCode == PICK_FILE_REQUEST){ 
       if(data == null){ 
        //no data present 
        return; 
       } 


       Uri selectedFileUri = data.getData(); 
       selectedFilePath = FilePath.getPath(getActivity(),selectedFileUri); 

       Log.i(TAG,"Selected File Path:" + selectedFilePath); 

       if(selectedFilePath != null && !selectedFilePath.equals("")){ 
        tvFileName.setText(selectedFilePath); 

       }else{ 
        Toast.makeText(getActivity(),"Cannot upload file to server", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     } 
    } 




    // Uploading Image/Video 
    private void uploadFile() { 
     dialog = ProgressDialog.show(getActivity(), "", "Uploading File...", true); 


     // Map is used to multipart the file using okhttp3.RequestBody 
     Map<String, RequestBody> map = new HashMap<>(); 
     File file = new File(selectedFilePath); 
     String name=tv_name.getText().toString(); 
     String email=tv_email.getText().toString(); 
     // Parsing any Media type file 
     RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file); 
     RequestBody requestBody1=RequestBody.create(MediaType.parse("text/plain"),name); 
     RequestBody requestBody2=RequestBody.create(MediaType.parse("text/plain"),email); 
     map.put("file\"; filename=\"" + selectedFilePath + "\"", requestBody); 
     map.put("name\"; username=\"" + name+ "\"", requestBody1); 
     map.put("email\"; email=\"" + email+ "\"", requestBody2); 
+1

Sie wirklich lieber ein bisschen mehr haben gesucht sollte als nur eine Frage gestellt werden. Variationen dieser Frage wurden oft gestellt. – Frogger

+0

Ja, Sir. Ich habe Suche und benutzte file.length, aber in meiner Kodierung, wo ich es gestellt habe. –

+0

Das Wort dringend ist hier nicht gut gesehen! Es ist so, als ob du anderen Druck machen willst, indem du das sagst und oft zu Downvotes führt. Ich wollte das nur für die Zukunft erwähnen. – geisterfurz007

Antwort

0

Sie Datei length() können Sie die Dateigröße in Byte bekommen und haben eine bedingte, wenn seine über 10mb überprüfen.

Beispiel

long maxLength = 10000000; 
File file = .....; 

if(file.length() > maxLength){ 
    //failed length validation 
}else{ 
    //continue 
} 
+0

kann ich nicht es zu tun. Ich habe file.length verwendet, aber ich weiß nicht, wo ich es hinstellen soll. –

+0

Ist das hilfreicher? – Frogger

+0

Vielen Dank Sir Für Ihre Zeit :) Ich werde versuchen, Ihren Code mit meinem uploadFile() -Methode zu integrieren .. Vielen Dank .. –

Verwandte Themen