sql >> Database teknologi >  >> RDS >> Mysql

JSON og upload billede til serveren

I min tilgang brugte jeg org.apache.http.entity.mime.MultipartEntity og tilføjede, at billedfilnavnet blev sendt som en FileBody

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

send derefter MultiPartEntity til HttpPost. Jeg har ikke postet fuld kode, da den fik masser af kommentarer og kode, der ikke er relateret til dit spørgsmål. Ved at overføre billedet som en FileBody er det muligt at få billedet ved hjælp af stand php filhåndteringskode (se nedenfor).

  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;
          }

Til mit formål var koden ovenfor i en løkke, da jeg havde at gøre med flere billeder

$im = 'image_' . $i;

henviser til navnet på billedet i entiteten.

Beklager det korte indlæg, jeg har travlt med tiden.

Glemte at nævne grunden til, at jeg ikke brugte Base64-strengmetoden, er den begrænser størrelsen af ​​det billede, du kan sende. FileBody-tilgangen i entiteten var den bedste tilgang, jeg fandt.

Du kan sende strenge ved at bruge:

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. Sådan kopieres databasetabeller og hver post fra en databaseserver til en anden databaseserver i PHP MYSQL ?>

  2. PHP &MySQL Hvordan man viser kategorier i alle underkategorier fra databasen

  3. Er indlejrede transaktioner tilladt i MySQL?

  4. Udfordringer ved at skalere Moodle MySQL-databasen