-1

I am developing android application where user will upload video to server. I am new to android development so I cannot grasp the concept of uploading video. The thing I know is that I need to create an intent to ask user to choose the video and then convert it to uri file. I'm planning on using asynctask with httpurlconnection. Can anyone help me what to do with asynctask?

1 Answers1

0

I think this will help you upload video

public static int upLoad2Server(String sourceFileUri) {
   String upLoadServerUri = "your remote server link";
  // String [] string = sourceFileUri;
  String fileName = sourceFileUri;

  HttpURLConnection conn = null;
  DataOutputStream dos = null;
  DataInputStream inStream = null;
  String lineEnd = "\r\n";
  String twoHyphens = "--";
  String boundary = "*****";
  int bytesRead, bytesAvailable, bufferSize;
  byte[] buffer;
  int maxBufferSize = 1 * 1024 * 1024;
  String responseFromServer = "";

  File sourceFile = new File(sourceFileUri);
  if (!sourceFile.isFile()) {
     Log.e("Huzza", "Source File Does not exist");
   return 0;
  }
  try { // open a URL connection to the Servlet
   FileInputStream fileInputStream = new FileInputStream(sourceFile);
   URL url = new URL(upLoadServerUri);
   conn = (HttpURLConnection) url.openConnection(); // Open a HTTP  connection to  
the URL
   conn.setDoInput(true); // Allow Inputs
   conn.setDoOutput(true); // Allow Outputs
   conn.setUseCaches(false); // Don't use a Cached Copy
   conn.setRequestMethod("POST");
   conn.setRequestProperty("Connection", "Keep-Alive");
   conn.setRequestProperty("ENCTYPE", "multipart/form-data");
   conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
   conn.setRequestProperty("uploaded_file", fileName);
   dos = new DataOutputStream(conn.getOutputStream());

   dos.writeBytes(twoHyphens + boundary + lineEnd);
   dos.writeBytes("Content-Disposition: form-data; 
 name=\"uploaded_file\";filename=\""+ fileName + "\"" + lineEnd);
   dos.writeBytes(lineEnd);

   bytesAvailable = fileInputStream.available(); // create a buffer of  maximum size
   Log.i("Huzza", "Initial .available : " + bytesAvailable);

   bufferSize = Math.min(bytesAvailable, maxBufferSize);
   buffer = new byte[bufferSize];

   // read file and write it into form...
   bytesRead = fileInputStream.read(buffer, 0, bufferSize);

   while (bytesRead > 0) {
     dos.write(buffer, 0, bufferSize);
     bytesAvailable = fileInputStream.available();
     bufferSize = Math.min(bytesAvailable, maxBufferSize);
    bytesRead = fileInputStream.read(buffer, 0, bufferSize);
    }

   // send multipart form data necesssary after file data...
   dos.writeBytes(lineEnd);
   dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

   // Responses from the server (code and message)
   serverResponseCode = conn.getResponseCode();
   String serverResponseMessage = conn.getResponseMessage();

   Log.i("Upload file to server", "HTTP Response is : " + serverResponseMessage + ": " + serverResponseCode);
   // close streams
   Log.i("Upload file to server", fileName + " File is written");
   fileInputStream.close();
   dos.flush();
   dos.close();
  } catch (MalformedURLException ex) {
       ex.printStackTrace();
   Log.e("Upload file to server", "error: " + ex.getMessage(), ex);
  } catch (Exception e) {
   e.printStackTrace();
  }
//this block will give the response of upload link
  try {
   BufferedReader rd = new BufferedReader(new InputStreamReader(conn
 .getInputStream()));
   String line;
   while ((line = rd.readLine()) != null) {
    Log.i("Huzza", "RES Message: " + line);
   }
   rd.close();
  } catch (IOException ioex) {
   Log.e("Huzza", "error: " + ioex.getMessage(), ioex);
  }
  return serverResponseCode;  // like 200 (Ok)

 } // end upLoad2Server
Rajat Tyagi
  • 320
  • 5
  • 9