package com.telubi.connectivity;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.util.Log;
import com.cipl.TennisApp.Login;
public class FileUploader {
private String Tag = \"UPLOADER\";
private String urlString;// = \"YOUR_ONLINE_PHP\";
HttpURLConnection conn;
String exsistingFileName;
public String result;
public String uploadImageData(String serverImageTag) {// Server image tag
String lineEnd = \"\\r\\n\";
String twoHyphens = \"--\";
String boundary = \"*****\";
try {
// ------------------ CLIENT REQUEST
Log.e(Tag, \"Inside second Method\");
FileInputStream fileInputStream = new FileInputStream(new File(
exsistingFileName));
// open a URL connection to the Servlet
URL url = new URL(urlString);
// Open a HTTP connection to the URL
conn = (HttpURLConnection) url.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);
if (serverImageTag.equalsIgnoreCase(\"courtImage\")) {
dos.writeBytes(\"Content-Disposition: post-data; name=courtImage[];filename=\"
+ exsistingFileName + \"\" + lineEnd);
} else if (serverImageTag.equalsIgnoreCase(\"userImage\")) {
dos.writeBytes(\"Content-Disposition: post-data; name=userImage[];filename=\"
+ exsistingFileName + \"\" + lineEnd);
}
dos.writeBytes(lineEnd);
Log.e(Tag, \"Headers are written\");
// create a buffer of maximum size
int bytesAvailable = fileInputStream.available();
int maxBufferSize = 1000;
// int bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte[] buffer = new byte[bytesAvailable];
// read file and write it into form...
int bytesRead = fileInputStream.read(buffer, 0, bytesAvailable);
while (bytesRead > 0) {
dos.write(buffer, 0, bytesAvailable);
bytesAvailable = fileInputStream.available();
bytesAvailable = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bytesAvailable);
}
// send multipart form data necessary after file data...
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
String serverResponseMessage = conn.getResponseMessage();
BufferedReader rd = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
// String serverResponseCode = conn.
// String serverResponseMessage = conn.getResponseMessage();
while ((result = rd.readLine()) != null) {
Log.v(\"result\", \"result \" + result);
Login.fbResponse = result;
}
// close streams
Log.e(Tag, \"File is written\");
fileInputStream.close();
dos.flush();
dos.close();
rd.close();
} catch (MalformedURLException ex) {
Log.e(Tag, \"error: \" + ex.getMessage(), ex);
}
catch (IOException ioe) {
Log.e(Tag, \"error: \" + ioe.getMessage(), ioe);
}
// Parsing has finished.
return result;
}
public FileUploader(String existingFileName, String urlString) {
this.exsistingFileName = existingFileName;
this.urlString = urlString;
}
}