Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

JSON dan unggah gambar ke server

Dalam pendekatan saya, saya menggunakan org.Apache.http.entity.mime.MultipartEntity dan menambahkan nama file gambar sebagai FileBody

entity.addPart("image_" + photo_count, new FileBody(
                        new File(failed.getFilenames()[i])));

lalu berikan MultiPartEntity ke HttpPost. Saya belum memposting kode lengkap karena mendapat banyak komentar dan kode yang tidak terkait dengan pertanyaan Anda. Dengan melewatkan gambar sebagai FileBody, dimungkinkan untuk mendapatkan gambar menggunakan kode penanganan file stand php (Lihat Di Bawah).

  if ((!empty($_FILES[$im])) && ($_FILES[$im]['error'] == 0)) {
              $newname = dirname(__FILE__) . '/../photo/' . $campaign . '/' . $fn;
              if (!file_exists($newname)) {
                  if (move_uploaded_file($_FILES[$im]['tmp_name'], $newname)) {
                      //$resp = "The file " . $fn . " has been uploaded";
                      //printf("%s", $resp);
                  } else {
                    $error = $error + 1;      
                  } 
              }else{
                //image file already exists
                $error = $error + 1;
              }
          } else {
              $error = $error +1;
          }

Untuk tujuan saya, kode di atas berada dalam satu lingkaran karena saya berurusan dengan banyak gambar

$im = 'image_' . $i;

mengacu pada nama gambar dalam entitas.

Maaf untuk posting pendek saya terburu-buru untuk waktu.

Lupa menyebutkan alasan mengapa saya tidak menggunakan pendekatan string Base64 karena membatasi ukuran gambar yang dapat Anda kirim. Pendekatan FileBody dalam entitas adalah pendekatan terbaik yang saya temukan.

Anda dapat melewatkan string menggunakan:

entity.addPart("address", new StringBody(failed[0].getAddress()));

HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 20000); // Timeout

MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addPart("address", new StringBody("my address example"));
entity.addPart("image_0", new FileBody(new File("filename of image")));

HttpPost post = new HttpPost("server address");
post.setEntity(entity);

HttpResponse response  = client.execute(post);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - KESALAHAN 1045 - Akses ditolak

  2. mysqldump dengan --where klausa tidak berfungsi

  3. nodejs mysql beberapa tempat kueri

  4. Klausa IN tidak menggunakan indeks

  5. C# Konektor MySQL