/* * Copyright 2015 Constant Innovations Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.constantinnovationsinc.livemultimedia.utilities; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.util.Log; public class HttpFileUpload { URL connectURL; String responseString; String Title; String Description; byte[ ] dataToServer; FileInputStream fileInputStream = null; public HttpFileUpload(String urlString, String vTitle, String vDesc){ try{ connectURL = new URL(urlString); Title= vTitle; Description = vDesc; }catch(Exception ex){ Log.i("HttpFileUpload","URL Malformatted"); } } public synchronized void Send_Now(FileInputStream fStream){ fileInputStream = fStream; Sending(); } public synchronized void Sending(){ String iFileName = "ovicam_temp_vid.mp4"; String lineEnd = "\r\n"; String twoHyphens = "--"; String boundary = "*****"; String Tag="fSnd"; try { Log.e(Tag,"Starting Http File Sending to URL"); // Open a HTTP connection to the URL HttpURLConnection conn = (HttpURLConnection)connectURL.openConnection(); // Allow Inputs conn.setDoInput(true); // Allow Outputs conn.setDoOutput(true); // Don't use a cached copy. conn.setUseCaches(false); // Use a post method. conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary); DataOutputStream dos = new DataOutputStream(conn.getOutputStream()); dos.writeBytes(twoHyphens + boundary + lineEnd); dos.writeBytes("Content-Disposition: form-data; name=\"title\""+ lineEnd); dos.writeBytes(lineEnd); dos.writeBytes(Title); dos.writeBytes(lineEnd); dos.writeBytes(twoHyphens + boundary + lineEnd); dos.writeBytes("Content-Disposition: form-data; name=\"description\""+ lineEnd); dos.writeBytes(lineEnd); dos.writeBytes(Description); dos.writeBytes(lineEnd); dos.writeBytes(twoHyphens + boundary + lineEnd); dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + iFileName +"\"" + lineEnd); dos.writeBytes(lineEnd); Log.e(Tag,"Headers are written"); // create a buffer of maximum size int bytesAvailable = fileInputStream.available(); int maxBufferSize = 1024; int bufferSize = Math.min(bytesAvailable, maxBufferSize); byte[ ] buffer = new byte[bufferSize]; // read file and write it into form... int 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); } dos.writeBytes(lineEnd); dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); // close streams fileInputStream.close(); dos.flush(); //Log.e(Tag,"File Sent, Response: "+String.valueOf(conn.getResponseCode())); //InputStream is = conn.getInputStream(); // retrieve the response from server //int ch; //StringBuffer b =new StringBuffer(); //while( ( ch = is.read() ) != -1 ){ b.append( (char)ch ); } //String s=b.toString(); //Log.i("Response",s); dos.close(); } catch (MalformedURLException ex) { Log.e(Tag, "URL error: " + ex.getMessage(), ex); } catch (IOException ioe) { Log.e(Tag, "IO error: " + ioe.getMessage(), ioe); } } }