2017-03-24 5 views
1

Hallo versuche ich eine Datei aus dem externen Speicher von Android-Handy auf die URL in der Variablen upLoadServerUri wie folgt zu laden.Android Upload-Datei zum Server mit PHP

final String upLoadServerUri = "http://www.www.com/UploadToServer.php"; 
URL url = new URL(upLoadServerUri); 

// Open a HTTP connection to the URL 
conn = (HttpURLConnection) url.openConnection(); 
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); 

// create a buffer of maximum size 
bytesAvailable = fileInputStream.available(); 

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); 
    Log.d("Inside ByteRead", "Reading"); 
} 

// 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(); 


fileInputStream.close(); 
dos.flush(); 
dos.close(); 

Der folgende Code in der UploadToServer.php Datei verwendet, die die Ziel-URL-Datei oben in dem Java-Code ist wird. Ich habe kein Wissen über PHP-Ende, also können Sie mir raten, ob unten Code wäre in der Lage, Daten zu speichern, wenn wir eine Datei auf der Grundlage des obigen Java-Code auslösen. Vielen Dank.

<?php 
// Where the file is going to be placed 
$target_path = "recorded/"; 

/* Add the original filename to our target path. 
Result is "uploads/filename.extension" */ 
$target_path = $target_path . basename($_FILES['uploaded_file']['name']); 

if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['uploaded_file']['name']). 
    " has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
    echo "filename: " . basename($_FILES['uploaded_file']['name']); 
    echo "target_path: " .$target_path; 
} 
?> 
+0

Das PHP-Skript ist Echo-Informationen zu Ihrer Android App. Dies wird getan, um zu kommunizieren. Sie lesen diese Echos nicht in Ihrer Android App. Sie wissen also nicht, was im Skript passiert ist. – greenapps

+0

Das PHP-Skript sieht gut aus. Aber Ihr Android-Code fehlt der Teil, um die Echos zu lesen. – greenapps

+0

Seltsam, dass Sie uns nicht gesagt haben, ob Sie eine Datei hochladen können. Seltsam, dass du nicht berichtet hast, wie dein Android-Code geflossen ist. Code und Nachricht. – greenapps

Antwort

0

Bitte versuchen Sie nachzurüsten. Es ist einfach und einfach. Lesen Sie dieses Tutorial. Upload Files to Server

+0

Ich habe Probleme mit dem PHP-Code. Ich fühle, dass Android-Code in Ordnung ist. – anukb

Verwandte Themen