Autore Topic: Upload file?  (Letto 573 volte)

Offline x69asterix2

  • Utente junior
  • **
  • Post: 127
  • Respect: +1
    • Mostra profilo
Upload file?
« il: 02 Marzo 2015, 14:14:42 CET »
0
secondo la vostra esperienza è possibile inviare un file ad un server remoto da dispositivo?
evidentemente sbaglio io ma comunque posto il mio codice:

Codice: [Seleziona]
    private String upload(){
        String url = "http://xxx.altervista.org/UploadToServer.php";

        File file = new File(Environment.getExternalStorageDirectory().toString() + "/M_G_DB/_Foto/20141112_173617.jpg");
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        HttpPost postRequest = new HttpPost(url);
        MultipartEntity reqEntity = new MultipartEntity(
                HttpMultipartMode.BROWSER_COMPATIBLE);

        try {




       //     File file = new File(filename);

            FileBody fileBody = new FileBody(file);
            reqEntity.addPart("video_file", fileBody);

            postRequest.setEntity(reqEntity);
            HttpResponse response = httpClient.execute(postRequest,
                    localContext);
            HttpEntity entity = response.getEntity();

            if (entity != null) {
                // entity.consumeContent();
                BufferedReader rd = new BufferedReader(new InputStreamReader(
                        entity.getContent()));
                // Log.e("response", "response " + rd.toString());
                String line;
                String result1 = "";
                while ((line = rd.readLine()) != null) {
                    result1 = result1 + line;
                    // Log.e("result", "line  " + line);




                }
                // Log.e("result", "is   " + result1);
                return result1;
            }
        } catch (Exception e) {
            return "Exception";
        }
        return "";
    }
è questo è lo script php:

Codice (XML): [Seleziona]
<?php

$file_path = “FOTO/”;

$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo “success”;
} else{
echo “fail”;
}
?>
anche se non il logcat non rileva errori nel server il file non è stato trasferito.

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Upload file?
« Risposta #1 il: 02 Luglio 2015, 16:07:28 CEST »
0
Ciao sei riuscito a trovare una soluzione a questo problema ? o comunque hai trovato una soluzione che funzioni al meglio per effettuare l'upload ? io ho un sistema ma non mi gestisce bene i casi , ovvero a volte fa l'upload senza problemi , alle volte no , e prima di diventare matto a cercare le eventuali eccezioni vorrei capire se c'è già una soluzione performante a questa cosa. nel mio caso devo inviare un bitmap .
saluti

Offline x69asterix2

  • Utente junior
  • **
  • Post: 127
  • Respect: +1
    • Mostra profilo
Re:Upload file?
« Risposta #2 il: 02 Luglio 2015, 16:49:26 CEST »
+1
Codice (Java): [Seleziona]
  org.apache.commons.net.ftp.FTPClient ftpClient = new org.apache.commons.net.ftp.FTPClient();
            try {

                ftpClient.connect(FTP_HOST, 21);
                if (ftpClient.isConnected()) {
                    try {
                        ftpClient.login(FTP_USER, FTP_PASS);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    ftpClient.enterLocalPassiveMode();
                    try {
                        ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    try {
                        ftpClient.changeWorkingDirectory("/uploads/img/Foto/");
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                    File secondLocalFile = new File(imagePath);
                    String secondRemoteFile = fileName;
                    FileInputStream inputStream = null;
                    try {
                        inputStream = new FileInputStream(secondLocalFile);
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }

                    //       System.out.println("Start uploading second file");
                    OutputStream outputStream = null;
                    try {
                        outputStream = ftpClient.storeFileStream(secondRemoteFile);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    //  byte[] bytesIn = new byte[4096];
                    byte[] bytesIn = new byte[1024];
                    int read = 0;

                    //      int bytesRead = 1;
                    long totalBytesRead = 0;
                    int percentCompleted = 0;
                    if (inputStream != null && outputStream != null) {
                        while ((read = inputStream.read(bytesIn)) != -1) {
                            //     totalBytesRead += read;
                            //    percentCompleted = (int) (totalBytesRead * 100 / secondLocalFile.length());
                            //      myProgress = percentCompleted;
                            //    publishProgress(myProgress);
                            outputStream.write(bytesIn, 0, read);


                            //      Log.d("read", String.valueOf(percentCompleted));
                        }

                        inputStream.close();
                        outputStream.close();
                        boolean completed = ftpClient.completePendingCommand();

                        if (completed) {
                            System.out.println("The second file is uploaded successfully.");

                        }
                    }
                }
            } catch (IOException ex) {
                System.out.println("Error: " + ex.getMessage());
                ex.printStackTrace();
            } finally {
                try {
                    if (ftpClient.isConnected()) {
                        ftpClient.logout();
                        ftpClient.disconnect();
                    }
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }

            return null;
        }

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Upload file?
« Risposta #3 il: 02 Luglio 2015, 16:57:32 CEST »
0
che zucca, e chi ci aveva pensato ad usare FTP , mi ero incaponito a fare un parse sfruttando uno script php , ma a seconda della velocità della connessione a volte va a volte no. grazie per l' aiuto  ;-)

Offline x69asterix2

  • Utente junior
  • **
  • Post: 127
  • Respect: +1
    • Mostra profilo
Re:Upload file?
« Risposta #4 il: 02 Luglio 2015, 17:54:36 CEST »
0
che zucca, e chi ci aveva pensato ad usare FTP , mi ero incaponito a fare un parse sfruttando uno script php , ma a seconda della velocità della connessione a volte va a volte no. grazie per l' aiuto  ;-)

 O:-)