Upload von Android-Loopj-Bildern mit WP-API v1 und v2 fehlgeschlagen

Lesezeit: 2 Minuten

Benutzeravatar von Mariano Zorrilla
Mariano Zorilla

Ich verwende Loopj, um Dateien auf meine WordPress-Site und WP REST API v1 und/oder v2 hochzuladen (gleiche Ergebnisse).

Die Authentifizierungen funktionieren hervorragend, Header funktionieren hervorragend, Dateien werden “hochgeladen”, aber wenn ich sie in meinem WordPress-Backend überprüfe … ist das Bild oder die Datei beschädigt.

Der Android-Teil geht so:

File myFile = new File(finalpath);

String name = Utils.getLastBitFromUrl(finalpath);

String extension = Utils.getFileExtention(finalpath);

client.setBasicAuth("myusername", "mypassword", new AuthScope("mywebsite.com", 80, AuthScope.ANY_REALM));

     client.addHeader("Content-Disposition", "filename=" + name);
     client.addHeader("Content-Type", "image/" + extension);

     try {
        params.put("data", myFile);
     } catch (FileNotFoundException e) {
           e.printStackTrace();
     }
     // or: http://mywebsite.com/wp-json/wp/v2/media for v2
     client.post("http://mywebsite.com/wp-json/media", params, new AsyncHttpResponseHandler() {

          int count = 0;

          @Override
          public void onStart() {
            prgDialog = new ProgressDialog(MainActivity.this);
            prgDialog.setMessage("Uploading Image...");
            prgDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            prgDialog.setMax(100);
            prgDialog.show();
          }

          @Override
          public void onProgress(long bytesWritten, long totalSize) {

              if(count < 1){
                 count++;
                 Log.d("size", "" + Utils.formatFileSize(totalSize));
              }

          long progressPercentage = (long)100*bytesWritten/totalSize;

          if(progressPercentage <= 100) {
              prgDialog.setProgress((int) progressPercentage);
            }
          }

          @Override
          public void onSuccess(int statuscode, Header[] headers, byte[] response) {
             try {
               prgDialog.dismiss();
               JSONObject obj = new JSONObject(Utils.decodeUTF8(response));

               Log.e("success!", Utils.decodeUTF8(response));

             } catch (JSONException e) {
                 e.printStackTrace();
             }

Aber das Bild… sieht in meinem WordPress-Backend so aus:

Bild kaputt

Hat jemand eine Ahnung warum das passiert? Meine Datei und mein Dateipfad sind perfekt. Ich kann das Bild abrufen und auf meinem Telefon anzeigen, bevor ich es hochlade.

EDIT: Diese cURL funktioniert perfekt

curl -i -X POST -H "Content-Disposition:filename=test.png" --data-binary @"/home/my-name/Downloads/example.png" -d title="test" -u username:password -H "Expect:" http://my.website.com/wp-json/wp/v2/media

Der Hauptunterschied ist über –data-binary @, aber ich weiß nicht, wie das über Java geht.

  • Hallo, ich stehe hier vor dem gleichen Problem…. hast du das gelöst?

    – Sangharscha

    24. Januar 2016 um 10:58 Uhr

  • Noch nicht 🙁 Ich verfolge das Github-Projekt, um zu sehen, ob jemand das löst.

    – Mariano Zorilla

    24. Januar 2016 um 17:32 Uhr

  • Hey, wenn du das Problem gelöst hast, poste bitte die Lösung…. 🙂

    – Sangharscha

    30. Januar 2016 um 14:38 Uhr

  • Bitte überprüfen Sie, ob die Datei ladbar und vom Browser beschädigt ist, möglicherweise ist das Bild nicht richtig angehängt. Versuchen Sie auch ein anderes Bild mit einem anderen Format – ich hatte ein ähnliches Problem, als ich Bilder in Photoshop erneut speichern musste, um zu verhindern, dass WordPress denkt, das Bild sei kaputt, z. B. wenn das Bild falsch in ein anderes Format konvertiert wurde.

    – SergeDirect

    23. August 2016 um 22:45 Uhr

Ich glaube, dein Bild ist nicht richtig angehängt. Bitte erkundigen Sie sich beim Postboten. Überprüfen Sie meinen Screenshot unten Geben Sie hier die Bildbeschreibung ein
Geben Sie hier die Bildbeschreibung ein

1396880cookie-checkUpload von Android-Loopj-Bildern mit WP-API v1 und v2 fehlgeschlagen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy