Ich habe die Antwort: Ich schreibe einfach meinen Code (der richtige). hoffe, anderen mit gleichen Schwierigkeiten zu helfen. Ich möchte ein Bild mit Benutzername und Token senden, ist es werde, wie dies in Android und php:
protected Object doInBackground(Object[] params) {
int fbyte,buffersize,cbuffer;
int maxbuffer=1024*1024;
final String lineEnd = "\r\n";
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 Seite:
$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;
Sie nicht beschreiben was funktioniert und was nicht. Es gibt auch keine Fragen. – greenapps
Ich weiß einfach nicht, wie fügen Sie Post-Anfrage an Server mit Bild-Upload-Anfrage zusammen in httpUrlConnection-Methode! Jeder von ihnen alleine funktioniert gut, aber ich weiß nicht, wie man beides zusammen macht. –
Das Problem ist, ich weiß nicht, wie man den Code für beide Android und PHP schreiben. –