IT IS SELF ANSWER QUESTION
I want to send some texts with my image which want to upload, I know that Apache HttpClient multipart is deprecated. so I want to do this with HTTPUrlConnection . here my code below, please help.
IT IS SELF ANSWER QUESTION
I want to send some texts with my image which want to upload, I know that Apache HttpClient multipart is deprecated. so I want to do this with HTTPUrlConnection . here my code below, please help.
I got the answer: I just rewrite my code (the correct one). hope help others with same trouble. I want to send an image with username and token, it is gonna like this in android and php :
protected Object doInBackground(Object[] params) {
int fbyte,buffersize,cbuffer;
int maxbuffer=1024*1024;
final String lineEnd = "
";
String twoHyphens = "--";
String boundary = "*****" + Long.toString(System.currentTimeMillis()) + "*****";
BufferedReader reader = null;
try{
String sfile = params[1].toString();
File f=new File(sfile);
FileInputStream fis=new FileInputStream(f);
URL url=new URL(params[0].toString());
HttpURLConnection con =(HttpURLConnection) url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setUseCaches(false);
con.setRequestProperty("Connection", "keep-Alive");
con.setRequestProperty("ENCType", "multipart/form-data");
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
con.setRequestProperty("imagefile", sfile);
DataOutputStream dos =new DataOutputStream(con.getOutputStream());
// upload image :
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"imagefile\"; filename=\"" + sfile + "\""+ lineEnd);
dos.writeBytes(lineEnd);
fbyte=fis.available();
buffersize=Math.min(fbyte, maxbuffer);
byte[] buffer=new byte[buffersize];
cbuffer=fis.read(buffer, 0, buffersize);
while(cbuffer>0){
dos.write(buffer,0,buffersize);
fbyte=fis.available();
buffersize=Math.min(fbyte, maxbuffer);
cbuffer=fis.read(buffer,0,buffersize);
}
dos.writeBytes(lineEnd);
String Username = "my username";
String Token = "my token";
//write username :
dos.writeBytes(twoHyphens+ boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"username\";" + lineEnd);
dos.writeBytes("Content-Type: text/plain; charset=UTF-8" + lineEnd);
dos.writeBytes(lineEnd + Username + lineEnd);
dos.writeBytes(lineEnd);
//write token :
dos.writeBytes(twoHyphens+ boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"token\";" + lineEnd);
dos.writeBytes("Content-Type: text/plain; charset=UTF-8" + lineEnd);
dos.writeBytes(lineEnd + Token + lineEnd);
dos.writeBytes(lineEnd);
if(con.getResponseCode()==200){
fis.close();
dos.flush();
dos.close();
}
}catch(final Exception e){ e.printStackTrace(); }
return "";
}// end doInBackground()
php side :
$username = $_POST['username'];
$token = $_POST['token'];
$target_path = "upload/". basename( $_FILES['imagefile']['name']);
move_uploaded_file($_FILES['imagefile']['tmp_name'], $target_path);
echo "username: ".$username." and token: ".$token;