본문 바로가기

Android/URLConnection Video upload

안드로이드 동영상 파일 업로드 예제

http://stackoverflow.com/questions/4944650/code-to-upload-video-from-android-to-php 

package test.android.hello;


import java.io.*;

import java.net.*;


import android.app.Activity;


import android.os.*;

import android.util.*;

 

public class FileUploadActivity extends Activity {


    @Override

    public void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        try {

            imageUpload();

        } catch (Exception e) {

            Log.e(e.getClass().getName(), e.getMessage());

        }

    }

    public void imageUpload()  {

        HttpURLConnection connection = null;

        DataOutputStream outputStream = null;

        DataInputStream inputStream = null;


        String pathToOurFile = Environment.getExternalStorageDirectory()+"/DCIM/Camera/test.jpg";

        String urlServer = "http://xxx.xxx.xxx.xxx:8080/uploadServlet";

        String lineEnd = "\r\n";

        String twoHyphens = "--";

        String boundary =  "*****";


        int bytesRead, bytesAvailable, bufferSize;

        byte[] buffer;

        int maxBufferSize = 1*1024*1024;


        try

        {

        FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile) );


        URL url = new URL(urlServer);

        connection = (HttpURLConnection) url.openConnection();


        // Allow Inputs & Outputs

        connection.setDoInput(true);

        connection.setDoOutput(true);

        connection.setUseCaches(false);


        // Enable POST method

        connection.setRequestMethod("POST");


        connection.setRequestProperty("Connection", "Keep-Alive");

        connection.setRequestProperty("Content-Type", "multipart/form-data;boundary");


        outputStream = new DataOutputStream( connection.getOutputStream() );

        outputStream.writeBytes(twoHyphens + boundary + lineEnd);

        outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile );

        outputStream.writeBytes(lineEnd);


        bytesAvailable = fileInputStream.available();

        bufferSize = Math.min(bytesAvailable, maxBufferSize);

        buffer = new byte[bufferSize];


        // Read file

        bytesRead = fileInputStream.read(buffer, 0, bufferSize);


        while (bytesRead > 0)

        {

        outputStream.write(buffer, 0, bufferSize);

        bytesAvailable = fileInputStream.available();

        bufferSize = Math.min(bytesAvailable, maxBufferSize);

        bytesRead = fileInputStream.read(buffer, 0, bufferSize);

        }


        outputStream.writeBytes(lineEnd);

        outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);


        // Responses from the server (code and message)

        int serverResponseCode = connection.getResponseCode();

         String serverResponseMessage = connection.getResponseMessage();

         Log.e("서버 응답 코드",""+serverResponseCode);

         Log.e("서버 응답 메시지",""+serverResponseMessage);

        fileInputStream.close();

        outputStream.flush();

        outputStream.close();

        }

        catch (Exception ex)

        {

            ex.printStackTrace();

        }

    }

}