Я хочу выбрать изображение из галереи и загрузить его на сервер путем модернизации. но когда я загружаю изображение, ответ, который возвращается, неуспешен, и причина: (нет такого файла или каталога), я думаю, что у моего кода сервера также есть некоторая проблема, пожалуйста, проверьте и помогите мне, это - мои коды:
мой apiservice :
@Multipart
@POST("upload.php")
fun uploadImage(@Part filePart:MultipartBody.Part):Call<Message>
код фрагмента:
image.setOnClickListener {
var intent = Intent(Intent.ACTION_PICK)
intent.type = "image/*"
startActivityForResult(intent, 1001)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 1001 && resultCode == Activity.RESULT_OK) {
image.setImageURI(data!!.data)
var file = File(data!!.data!!.path)
var requestBody = RequestBody.create(MediaType.parse("image/jpeg"), file)
var filePart = MultipartBody.Part.createFormData("upload_file", file.name, requestBody)
viewModel.uploadImage(filePart).observe(this, Observer {
Toast.makeText(context, it.message, Toast.LENGTH_LONG).show()
})
}
}
и код сервера:
define ('SITE_ROOT', realpath(dirname(__FILE__)));
//if(isset($_FILES['upload_file'])) {
$target_dir = "/uploads/";
$target_file = $target_dir . microtime().rand(99999,999999).basename($_FILES["upload_file"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["upload_file"]["tmp_name"]);
if($check !== false) {
$uploadOk = 1;
} else {
echo '{"status":"error","message":"فایل معتبر نیست"}';
$uploadOk = 0;
}
}
// Check file size
if ($_FILES["upload_file"]["size"] > 500000) {
echo '{"status":"error","message":"حجم عکس نباید بیشتر از 500 کیلوبایت باشد"}';
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
) {
echo '{"status":"error","message":"فرمت عکس اشتباه است"}';
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo '{"status":"error","message":"متاسفانه عکس آپلود نشد"}';
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["upload_file"]["tmp_name"], SITE_ROOT.$target_file)) {
echo '{"status":"success","message":"عکس با موفقیت آپلود شد"}';
} else {
echo '{"status":"error","message":"مشکل در آپلود فایل"}';
}
//}
}