[JAVA] Ersetzen Sie die Vorschau durch Hochladen, indem Sie auf das Bild in file_field of Rails klicken

Erste Stufe

Wenn Sie bootstrap_form verwenden, sind die folgenden Schritte erforderlich. Wenn Sie "bootstrap_form" verwenden, erstellt dieses Gem eine schöne Benutzeroberfläche, die jedoch in dieser Implementierung im Weg steht.

<%= f.file_field :image %>

スクリーンショット 2020-11-06 10.34.09.png

Stellen Sie daher sicher, dass der Bootstrap-Stil nicht angewendet wird.

<%= f.file_field_without_bootstrap :image %>

スクリーンショット 2020-11-06 10.34.59.png

Klicken Sie zum Hochladen auf das Bild

<%= f.label :image do %>
  <%= image_tag('user.png') %>
  <%= f.file_field_without_bootstrap :image, style: 'display:none' %>
<% end %>

Fügen Sie einfach das Bild und das Dateifeld in das Etikett ein und verstecken Sie das Dateifeld in CSS. Wenn Sie den Bildteil durch ein Symbol ersetzen, können Sie ihn hochladen, indem Sie auf das Symbol klicken.

Ersetzen Sie das angezeigte Bild durch das hochgeladene Bild

Dem Image und Uploader wurde ein geeigneter Klassenname hinzugefügt, damit das Element von JS bezogen werden kann.

<%= f.label :image do %>
  <%= image_tag('user.png', class: 'avatar') %>
  <%= f.file_field_without_bootstrap :image, class: 'uploader', style: 'display:none' %>
<% end %>

Codiert das in JavaScript ausgewählte Bild in base64 und ersetzt es durch das Originalbild.

window.addEventListener('load', () => {
    const uploader = document.querySelector('.uploader');
    uploader.addEventListener('change', (e) => {
      const file = uploader.files[0];
      const reader = new FileReader();
      reader.readAsDataURL(file);
      reader.onload = () => {
        const image = reader.result;
        document.querySelector('.avatar').setAttribute('src', image);
      }
    });
});

Recommended Posts

Ersetzen Sie die Vorschau durch Hochladen, indem Sie auf das Bild in file_field of Rails klicken
[Rails] Implementierung der Bildvorschau
Die Identität der Schienenparameter [: id]
Rails6: Extrahieren Sie das Bild im Aktionstext
Ändern Sie das Speicherziel des Bildes in der Rails-App in S3. Teil 2
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
So wechseln Sie zum Detailbildschirm, indem Sie auf das Bild klicken
Bildverarbeitung: Grundstruktur des vom Programm gelesenen Bildes
[Ruby on Rails] Post-Bildvorschau-Funktion in Refile
SSL in der lokalen Umgebung von Docker / Rails / Puma
[Schienen] So zeigen Sie Bilder in der Ansicht an
[Enum] Verwenden Sie Rails Enum, um die Lesbarkeit von Daten zu verbessern
[Rails] Registrieren Sie sich mit Devise nach Attributen desselben Modells
Installieren Sie, indem Sie die Version von Django in der Docker-Umgebung angeben
[Rails] Bei der Beschreibung der Validierung ist Vorsicht geboten
JavaFX-Bild im Hintergrund laden
[Rails] So konvertieren Sie den URI des von http gesendeten Bildes in https, wenn Sie die Twitter-API verwenden
[Rails] Unterdrücken Sie nutzloses SQL, indem Sie die Cache-Steuerung von Zuordnungen verwenden
Ich habe versucht, die Bildvorschau mit Rails / jQuery zu implementieren
Was tun, wenn das von refile gepostete Bild nach dem Einstellen der 404-Fehlerseite in Rails verschwindet?
[Rails] Einführung von Rubocop durch Anfänger
[Schienen] Überprüfen Sie den Inhalt des Objekts
Ersetzen Sie den Inhalt der Jar-Datei
Erläuterung der Reihenfolge der Schienenrouten
Überprüfen Sie den Migrationsstatus von Schienen
Ja, lassen Sie uns eine Vorschau des Bildes anzeigen. ~ part5 ~
Reihenfolge der Verarbeitung im Programm
[Rails] Unterschied im Verhalten zwischen Delegat und has_many-through bei Eins-zu-Eins-zu-Viele
Das Problem, dass der Inhalt von Parametern vollständig in der Ansicht [Rails] angezeigt wird
[Schienen] Über den Fehler, dass das Bild nicht in der Produktionsumgebung angezeigt wird
[Rails] In Bezug auf das Vorhandensein oder Fehlen von Klammern im Argument der Rendermethode
[Rails] Die Ursache dafür, dass nicht gepostet werden konnte, war in form_with
So machen Sie https zum Schema der URL, die vom URL-Helfer von Rails generiert wurde