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;
}
?>
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
Das PHP-Skript sieht gut aus. Aber Ihr Android-Code fehlt der Teil, um die Echos zu lesen. – greenapps
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