Я пытался загрузить данные с Android на сервер PHP, файл был успешно загружен, только файл стал нулевым байтом.
Я не знаю, что не так, вы можете мне помочь?
<?php
include 'config.php';
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$DefaultId = 0;
$ImageData = $_POST['image_data'];
$ImageName = $_POST['image_tag'];
$ImagePath = "upload/$ImageName.jpg";
$ServerURL = "http://192.168.18.125/$ImagePath";
$InsertSQL = "INSERT INTO imageupload (image_path,image_name)
values('$ServerURL','$ImageName')";
if(mysqli_query($conn, $InsertSQL)) {
$decodedImage = base64_decode($ImageData);
file_put_contents($ImagePath,$decodedImage);
echo "Your Image Has Been Uploaded.";
}
mysqli_close($conn);
} else {
echo "Please Try Again";
}
?>
Это мой код Android, я загружаю изображение с помощью асинхронной задачи.
Я не знаю, что не так в моем коде.
public void UploadImageToServer() {
FixBitmap.compress(Bitmap.CompressFormat.JPEG, 40, byteArrayOutputStream);
byteArray = byteArrayOutputStream.toByteArray();
ConvertImage = Base64.encodeToString(byteArray, Base64.DEFAULT);
class AsyncTaskUploadClass extends AsyncTask<Void,Void,String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = ProgressDialog.show(MainActivity.this,"Image is Uploading","Please Wait",false,false);
}
@Override
protected void onPostExecute(String string1) {
super.onPostExecute(string1);
progressDialog.dismiss();
Toast.makeText(MainActivity.this,string1,Toast.LENGTH_LONG).show();
}
@Override
protected String doInBackground(Void... params) {
ImageProcessClass imageProcessClass = new ImageProcessClass();
HashMap<String,String> HashMapParams = new HashMap<String,String>();
HashMapParams.put(ImageTag, GetImageNameFromEditText);
HashMapParams.put(ImageName, ConvertImage);
String FinalData = imageProcessClass.ImageHttpRequest("http://192.168.18.175/Android%20Upload%20Image/upload-image-to-server.php", HashMapParams);
return FinalData;
}
}
AsyncTaskUploadClass AsyncTaskUploadClassOBJ = new AsyncTaskUploadClass();
AsyncTaskUploadClassOBJ.execute();
}