2012-01-06 5 views
0

Je veux aperçu d'une image avant de l'envoyer sous une forme qui ont d'autres champs comme le nom, âge etc. i ont essayé la solution ajax. le code fonctionne bien autonome. Mais quand je mets le code dans le formulaire ça ne marche pas.plz m'aider.Comment prévisualiser une image en forme longue

le code est le suivant: Code autonome pour la prévisualisation de l'image par l'Ajax

<form id="imageform" method="post" enctype="multipart/form-data" action='ajaximage.php'> 
Upload your image <input type="file" name="photoimg" id="photoimg" /> 
</form> 

et ma forme est

<form name="iupload" action="index.php" method="post" > 
Name <input type="text" name="myname" ><br/> 
Age <input type="text" name="age" > 
<input type="file" name="photoimg" id="photoimg" /> 

<input type="submit" name="submit" value="upload"> 

<div id='preview'> 
</div> 

</form> 
+0

Vous n'avez pas besoin normalement, car la boîte de dialogue de fichier de sélection du navigateur affiche une vignette et des informations sur le fichier déjà. – hakre

+0

@hakre utilisateur besoin de voir l'aperçu de l'image téléchargée (avatar). –

+0

Vous ne pouvez pas accéder à la valeur d'un élément '' avec javascript. Cela est empêché pour des raisons de sécurité. Donc vous ne pouvez rien créer ici. Vous cherchez peut-être quelques trucs de fantaisie HTML5, mais votre question ne le dit pas. – hakre

Répondre

0

Je dirais que vous pouvez afficher l'image locale avant de le télécharger dans tous les navigateurs qui prend en charge le File API, et vieux versions d'IE (version 7 et ci-dessous).

Utilisation de l'API File, vous pouvez obtenir un blob local en utilisant la méthode window.URL.createObjectURL. IE8 bêta introduit un ajout « fakefile » pour cacher l'URL du fichier local, pour corriger un problème de sécurité comme expliqué here. Mais dans les versions plus anciennes, vous devriez être en mesure d'exploiter ce trou de sécurité.

Quelque chose comme cela pourrait fonctionner (fiddle):

$('form input[type=file]').change(function() { 
    var src; 
    if ('files' in this) { // File API supported (webkit/FF) 
     var obj = this.files[0]; 
     src = window.URL ? 
      window.URL.createObjectURL(obj) : 
      window.webkitURL.createObjectURL(obj); 
    } else { 
     if (/fake/.test(this.value)) { 
      // fallback to whatever (IE8, IE9) 
     } else { 
      src = this.value; // exploits the IE security hole 
     } 
    } 
    $(new Image()).attr('src',src).appendTo('body'); // the local image! 
}); 
1

Vous ne pouvez pas afficher un aperçu des images locales dans le navigateur. Le navigateur n'a pas accès au système de fichiers local. Vous devez utiliser Flash, Java ou plug-ins Active-X pour le faire

+0

s'il vous plaît donner une référence, je pense que nous pouvons le faire par ajax, php et js seulement –

+0

Si le navigateur pouvait accéder au système de fichiers local ce serait un énorme trou de sécurité. Nous aurions des pages malveillantes qui volent nos fichiers. –

+0

Ce n'est plus vrai: http://www.w3.org/TR/FileAPI/ – David

Questions connexes