sql >> Databasteknik >  >> RDS >> Mysql

JSON och ladda upp bilden till servern

I mitt tillvägagångssätt använde jag org.apache.http.entity.mime.MultipartEntity och lade till bildfilens namn som en FileBody

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

skicka sedan MultiPartEntity till HttpPost. Jag har inte lagt upp hela koden eftersom den har fått massor av kommentarer och kod som inte är relaterad till din fråga. Genom att skicka bilden som en FileBody är det möjligt att få bilden med hjälp av stand php filhanteringskod (se nedan).

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

För mitt syfte var koden ovan i en loop eftersom jag hade att göra med flera bilder

$im = 'image_' . $i;

hänvisar till namnet på bilden i entiteten.

Förlåt för det korta inlägget, jag har bråttom.

Glömde nämna anledningen till att jag inte använde Base64-strängmetoden är att den begränsar storleken på bilden som du kan skicka. FileBody-metoden i entiteten var den bästa metoden jag hittade.

Du kan skicka strängar med:

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. Vad ska jag lagra som mitt index i klientkoden?

  2. Varför kan jag inte använda en variabel som tabellnamn i en lagrad procedur?

  3. MySQL:4 Table har-många-genom Gå med?

  4. Hur man väljer en användarvänlig databas för ditt företag