Der beste Weg für Sie ist die Verwendung von Javascript. Ich würde Ihnen die folgenden Schritte vorschlagen:
1/Integrieren Sie ein Kontrollkästchen in Symfony-Form.
2/Das Kontrollkästchen mit Javascript ausblenden.
3/Wenn das Bild hochgeladen wird, zeigen das Bild (einen Auszug des Codes siehe unten für diesen Schritt) + das Kontrollkästchen Anzeigen
4/Detect das Ereignis (Klick auf die Checkbox), erhalten den Wert von es und entsprechend seinem Wert, verbergen oder das Bild
Ein Auszug des Codes angezeigt, die Sie zur Anzeige des Bildes helfen könnten:
$(function() {
$(".upload-file input").each(function(){
$(this).on("change", function(){
var files = !!this.files ? this.files : [];
if (!files.length || !window.FileReader) return; // no file selected, or no FileReader support
if (/^image/.test(files[0].type)){ // only image file
var reader = new FileReader(); // instance of the FileReader
reader.readAsDataURL(files[0]); // read the local file
reader.onloadend = function(){ // set image data as background of div
$("#imagePreview").css("background-image", "url("+this.result+")");
// Show picture fields
if (typeof hideShowFieldsPictureForm !== 'undefined') {
hideShowFieldsPictureForm();
}
if ($('#hideShowPixFields').length) {
$('#hideShowPixFields').removeClass('hidden');
}
};
}
});
});
if ($('#uploadFileBtn').length) {
$('#uploadFileBtn').click(function() {
$('.upload-file input[type=file]').click();
});
}
});
Und in dem Zweig:
{# Main Picture #}
<table class="upload-file">
<tr>{{ form_errors(form.picture.file) }}</tr>
<tr>
<td>
{{ form_widget(form.picture.file) }}
<div id="imagePreview"></div>
</td>
</tr>
</table>
Dank! Kannst du mir die .removeClass erklären? und der Leser. Ich möchte wissen, wofür sie sind. – Nerdicon
.onloendend, wird am Ende des Uploads gestartet. .removeClass ist etwas Abschnitt – delpi
zu verbergen, machte es irgendwie funktioniert – Nerdicon