UploadFormField Bild-Vorschau ohne darstellbares Bild

  • Beim Bearbeiten eines Formulars mit gepeicherterm Bild mit .bin-Endung generiert das Feld folgende Vorschau:

    HTML
    <img src="" alt="" class="previewImage" id="imageImage" style="max-width: 100%" data-unique-file-id="6901bd1706ede2545588b16337a584b4f79fdafa">


    1. Ich lade über UploadFormField ein Bild hoch
      imageOnly(true), maximum(1)
    2. Ich speichere das Bild als <ID>.bin, weil ich das Bild anschließend per PHP ausliefern will und mir eine Berechtigungsabfrage vorbehalte
    3. Ich rufe das Bearbeitungsformular auf
      getImageUploadFileLocations() gibt ein Array mit dem Speicherort des Bildes, das als .bin-Datei abgelegt ist, zurück
    4. Das Formular erkennt, dass ein Bild existiert und versucht eine Vorschau zu laden, weil nur ein Bild erlaubt und nur Bilder erlaubt sind, bekommt aber eine leere URL, weil ImageUtil::isImage() anhand der Dateiendung zurückgibt, dass es kein valides Bild ist


    Entweder man umgeht das Ganze und stellt das Bild irgendwie dar, oder man erweitert die Abfrage bzw. ergänzt sie um eine untergeordnete, weil das $uploadFieldFiles erst resettet ewrden muss. Vom Prinzip her so:

    Smarty: uploadFieldComponent.tpl
    {if !$uploadField->supportMultipleFiles() && $uploadField->isImageOnly() && $file->isImage()}
    • Official Post

    Hallo,


    ein derartige Vorgehensweise wird bisher nicht unterstützt.


    Was du aber machen könntest, wäre eine eigene Instanz des UploadFormFields zu erstellen und die Methode updatedObject zu überschreiben, sodass diese wcf\system\file\upload\UploadFile-Instanzen entgegen nimmt, anstelle von Datei-Speicherorten.


    Außerdem hättest du dann den Vorteil, dass die Klasse UploadFile die Methode setImageLink bereit stellt, mit welcher du den Link für das Bild bereitstellen kannst, welche das Bild über PHP ausliefert.


    Ich könnte mir aber mal anschauen, ob man die Methode UploadFormField::updatedObject() in 5.4 (oder später) von Haus aus anpassen könnte, damit sowas direkt möglich ist.


    Grüße


    Josh

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!