Upload de fichier est réinitialisé sur le bouton soumettre, cliquez sur
Je suis en utilisant la fonction d'importation dans mon site web asp. Je suis donc en utilisant l'entrée de fichier de type. Mais ce contrôle ajouter une valeur par défaut le bouton de téléchargement de parcourir et une zone de texte où le chemin d'accès s'affiche après la sélection de fichier dans Internet explorer. Je ne veux pas afficher le bouton parcourir etc. Donc, ce que j'ai fait est d'ajouter un bouton "Joindre un Fichier" et j'ai écrit le script 'triggerFileUpload fonction où je le fais, cliquez sur contrôle de téléchargement. Alors maintenant, quand je clique sur "Joindre un Fichier" bouton parcourir pour le fichier windows apparaît et vous pouvez sélectionner le fichier à télécharger. Mais quand je clique sur le bouton envoyer le fichier de contrôle de téléchargement devient reset et le fichier n'est pas téléchargé. Erreur, c'est que sur clic de bouton envoyer le fichier de contrôle devient nulle. Il arrive que dans internet explorer. Merci donc de m'aider à résoudre ce.Voici le code qui peuvent montrer le problème, je suis confronté dans IE.Même problème si j'utilise asp:contrôle FileUpload aussi. (mon plan est de cacher le fichier de contrôle et de montrer uniquement le bouton joindre un fichier pour l'utilisateur).
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function triggerFileUpload() {
document.getElementById("FileUploaddd2").click();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button2" type="button" onclick="triggerFileUpload()" value="Attach a File" />
<input type="file" id="FileUploaddd2" runat="Server" />
<br />
<asp:Button ID="btnSubmit" runat="server" BorderColor="Black"
BorderStyle="Solid" BorderWidth="1px"
Text="Submit" />
</div>
</form>
</body>
</html>
Télécharger l'exemple de code ici
Mise à JOUR
De reproduire l'erreur, je suis confronté à
1) exécuter le projet que j'ai donnée dans le lien de téléchargement
2) Test dans Internet explorer-toute version
3)Cliquez sur joindre un fichier bouton (pas sur parcourir,il est destiné à rendre visible faux,ici uniquement à titre d'exemple)
4)rechercher des fichiers dans windows qui apparaît et cliquez sur OK
5)maintenant, cliquez sur le bouton Enregistrer.
Lors de l'enregistrer sur le bouton btnsave_Click fonction de déclencheur,mais il n'est pas de déclenchement.Si je clique à nouveau sur le bouton enregistrer btnsave_Click est déclenché.Mais cette fois, le contrôle de téléchargement ne sera pas avoir le fichier sélectionné.vous pouvez le voir dans la zone de texte fournie par parcourir de contrôle(uniquement pour montrer ce que j'ai fait parcourir le contrôle visible)
Donc maintenant la question de savoir pourquoi btnsave_Click n'est pas déclenché pour la première fois?
- Votre code fonctionne et c'est l'affichage de fichier. Dans btnSubmit méthode de vérification posté fichier.
- Dans IE sa ne fonctionne pas pour moi. ont u pressé joindre un fichier bouton et le fichier téléchargé ou à l'aide de l'option d'exploration?
- On dirait que vous rencontré ce problème: localisation <asp:FileUpload>. Problème IE
- Non, le problème est avec la simulation de l'upload d'un fichier, cliquez sur événement... Voir ma réponse
- chercheur - si vous cherchez une solution de contournement, je suggère d'essayer ce truc: Upload de Fichier à l'Aide de Javascript renvoie 'Accès Refusé' Erreur
Vous devez vous connecter pour publier un commentaire.
Problème est IE ne les laissez pas vous soumettre un fichier à l'aide de javascript, il suffit de cliquez sur le fichier d'entrée. C'est un problème connu, décrit ici:
When an file-input is opened via a scripted, forced click() event, IE won't let you submit the form.
Ouvrir le fichier boîte de dialogue de saisie et de télécharger onchange possible c'est à dire?If you click the file-input via your own mouse (what we don't want), IE will let you submit the form.
et aussi ici: Téléchargement de fichiers à l'Aide de Javascript renvoie 'Accès Refusé' Erreur Avec Stylisée à un bouton
Donc, vous avez à tromper l'utilisateur, de faire dans le fichier d'entrée transparent et placez votre bouton dans le fichier d'entrée. Lorsque l'utilisateur va cliquer sur votre bouton, ils vont cliquer sur le fichier d'entrée à la place.
Avec le css (probablement vous aurez besoin de ruser) votre balisage devrait ressembler à ci-dessous:
Et dans le code derrière vous, vous pouvez attraper le fichier soumis
EDIT: Si vous souhaitez afficher le nom de fichier dans une étiquette, vous pouvez effectuer les opérations suivantes:
Dans le fichier d'Entrée de l'événement de changement de appeler un jsfunction:
Ajouter une étiquette pour afficher le nom de fichier:
Ajouter le setlabelvalue() en js fonction:
Upload de fichier en asp.net est assez simple mais nécessite quelques ajustements. Voici l'exemple:
Essayer ceci et cela devrait fonctionner.
Une fois que vous téléchargez un fichier, vous devez vous rendre
filMyFile.Visible=false;
et ajouter une étiquette pour afficher le fichier téléchargé et le lien de bouton pour la supprimer.J'espère qu'un sens maintenant.
Ici est vraiment simple de référence:
http://www.codeproject.com/Articles/1757/File-Upload-with-ASP-NET
1
- Ajouter un attribut enctype dans la balise form.2
- Ajouter ClientIDMode="Statique" dans la directive de page.Êtes-vous sûr que le clic est en train de travailler ? Parce que je pense que vous n'êtes pas à écrire le code java script correctement.
Vous avez besoin pour obtenir le
ClientID
de l'upload de fichier en java scriptcomme ceci:
Après votre mise à Jour, j'ai été en mesure d'exécuter le code avec succès...
Je pense que vous devez ajouter cette ligne après le bloc try catch à l'intérieur du bloc si dans votre code côté serveur...
APRÈS LA MISE À JOUR
Après avoir vu le jour sur Internet Explorer. Je pense que votre problème est: est-ce
Simuler le clic sur input type="file" à l'aide de javascript
Cela pourrait aussi aider: Vérification du navigateur avant l'exécution d'un événement
Vous pouvez également utiliser de l'Ajax Control Toolkit est AjaxFileUpload pour améliorer l'affichage et les fonctionnalités comme le glisser-déposer sont déjà mises en œuvre en ce que: Avoir un coup d'oeil. De cette façon, vous n'aurez pas à simuler un clic sur le bouton.
onclick
cas pour le bouton "soumettre", et dans le code-behind de la fiche pour le cas où vous avez besoin pour obtenir le fichier à l'aide deFileUploaddd2.PostedFile.SaveAs()
je ne sais pas si j'ai mal compris la question, mais pourquoi ne pas le faire: