2017-09-17 1 views
-1

J'ai une entrée de type de fichier, et je veux permettre à l'utilisateur de sélectionner une image sur son ordinateur ou simplement donner une URL, et notre serveur va télécharger l'image sur lui-même. J'ai un problème car je n'ai besoin que d'une seule entrée pour télécharger des images locales et des images liées.Fichier d'entrée avec l'URL

+0

Avez-vous essayé d'utiliser une case à cocher de sélection pour choisir si une image ou une URL va être entré? –

+0

Pourquoi avez-vous besoin d'utiliser une seule entrée? C'est idiot, vous pourriez mettre 2 et en cacher un qui pourrait être montré avec un lien ou un bouton. (Cacher l'autre champ alors) – COil

Répondre

0

Vous pouvez utiliser JQuery pour cela, Il suffit de garder le type de l'entrée TextType, et sur votre fichier de vue

... 
<button id="uploadButton">Upload Image</button> 
{{ form_widget(form.image , { 'id': 'image-field' }) }} 
... 

<script> 
.. 
$('#uploadButton').click(function() { 
     var button = $(this); 

     if(button.text === 'Upload Image') { 
      button.text('Set URL'); 
      $('#image-field').prop('type', 'file'); 
     } else { 
      button.text('Upload Image'); 
      $('#image-field').prop('type', 'url'); 
     } 
    }); 
.. 
</script> 

Ne pas oublier après avoir soumis le formulaire dans votre contrôleur pour vérifier si l'entrée avec le nom image est un fichier ou une URL en utilisant if ($request->files->has('imageField') ....