2010-09-13 9 views

Répondre

5

crochet sur l'événement change du champ de fichier.

<form method="post" enctype="multipart/form-data"> 
    <input type="file" onchange="this.form.filename.value = this.value"> 
    <input type="text" name="filename"> 
</form> 

Jsfiddle demo. Notez que IE6/7 donne incorrectement le chemin complet alors que les autres navigateurs ne donnent correctement que le nom du fichier.

+0

MSIE devrait donner seulement le nom de fichier aussi bien que IE 8. –

+0

@Pekka: * hausser *, MSIE == MSIE :) Je l'ai mis à jour. – BalusC

+0

@Pekka: J'ai jeté un œil à votre profil. Cette liste de souhaits Amazon.com a-t-elle un effet? Idée drôle :) – BalusC

0

Vous ne pouvez pas le faire sans stocker d'abord le fichier sur votre propre serveur.

Le contrôle de saisie de fichier et non contient les données du fichier. Votre navigateur vous l'offre comme espace réservé jusqu'à ce que vous soumettiez les données du fichier via une soumission de formulaire POST.

Si vous êtes après le chemin du fichier, vous ne pouvez pas non plus le faire (dans les navigateurs modernes, comme le dit Pekka). Le navigateur ne donne pas cette information aux scripts côté client. Il peut fournir le nom de fichier, cependant.

+1

Je pense qu'il cherche à copier uniquement le chemin du fichier, pas ses données. –

+0

@Pekka: Oui, j'ai mal interprété cette partie. Voir addenda. – palswim

+0

Je suis sûr que la valeur peut être lue, mais pas écrite. Donc ce qui l'intéresse est faisable. Voir la réponse de BalusC. – levik

1

Cela devrait être possible en créant un nouvel élément de saisie de texte et en le remplissant avec la propriété .value de l'entrée de fichier.

Notez, cependant, que tous les navigateurs modernes stockent seul le nom du fichier dans la propriété value pour des raisons de sécurité. Vous ne pourrez pas obtenir le chemin complet du fichier sélectionné.

Sources: MSDN on IE8

Questions connexes