Soru & Cevap

Android json ile sunucuya resim gönderme nasıl olabilir?

05.09.2019 - 02:31

Uygulamamda fotoğraf çekme özelliği var.Fotoğraf çekilir çekilmez imageview'a gidiyor ve ben şunu istiyorum.İmageview'a giden fotoğrafı webservisime yollamak istiyorum.Bunun için internette videolar var ama hepsinde resim cekme mevcut.Resim yollama videosuna hiç dek gelmedim.Nasıl resim yollayabilirim?

277 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user bakiyucel38
bakiyucel38
10.09.2019 - 10:35

Bir android uygulamamda aşağıdaki kodu kullanmıştım. https://github.com/bugdetector/Gezi-Yorum/blob/master/app/src/main/java/com/example/murat/gezi_yorum/Utils/MultipartUtility.java

Bu sınıfı direk kodunun içine dahil ederek kullanabilirsin.

MultipartUtility multipart = new MultipartUtility(URL,"UTF-8", false);

File zipFile = new File(getFilesDir()+"/trip.zip");

multipart.addFormField("fileName",zipFile.getName());

multipart.addFilePart("file",zipFile);

List<String> response_messages = multipart.finish();

Profile picture for user vahitdurmuss
vahitdurmuss
05.09.2019 - 03:22

Resmi çektikten sonra bu resmi text formatına çevirmen gerekiyor sunucuya gönderebilmen için. Resimi base64 formatına çevirdikten sonra web service gönderebilir bu webservis içerisinde FTP kullanarak fotoğrafı sunucudaki istediğin dosyaya yükleyebilirsin.

Ramazan Topal
05.09.2019 - 03:26
Uygulamaya çalışacağım.Teşekkür ederim Vahit bey.
picture-71411-1558791714.jpg
emreaydemir
05.09.2019 - 02:55

Api için: 

<?php  
$target_dir = "uploads/";  
$userpass = $_POST['userpass'];
$quizid = $_POST['quizid'];
//$userpass = $_FILES["userpass"]["pass"];  
if (!file_exists($target_dir .$quizid)) {
    mkdir($target_dir .$quizid, 0777, true);
}
$quizid_dir = $quizid ."/";
if (!file_exists($target_dir.$quizid_dir.$userpass)) {
mkdir($target_dir.$quizid_dir.$userpass, 0777, true);
}
$userpass_dir = $userpass ."/";
$target_file_name = $target_dir.$quizid_dir.$userpass_dir .basename($_FILES["file"]["name"]);  
$response = array();  
  
// Check if image file is an actual image or fake image  
if (isset($_FILES["file"]))   
{  
   if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file_name))   
   {  
     $success = true;  
     $message = "Successfully Uploaded";  
   }  
   else   
   {  
      $success = false;  
      $message = "Error while uploading";  
   }  
}  
else   
{  
      $success = false;  
      $message = "Required Field Missing";  
}  
$response["success"] = $success;  
$response["message"] = $message;  
echo json_encode($response);  
  
?>  

Çekmek için Retrofit:

@Multipart @POST("newuploadfile.php") public Call<ResponseBody> uploadFile(@Part MultipartBody.Part file, @Part("file") RequestBody name, @Part("userpass") RequestBody pass, @Part("quizid") RequestBody quizid);

Ramazan Topal
05.09.2019 - 03:03
Teşekkür ederim.