ASP.NET - COMMENT FAIRE UN UPLOAD DE FICHIER SIMPLE (DU CLIENT VERS LE SERVEUR)

cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015 - 1 oct. 2003 à 11:01
nyco222 Messages postés 1 Date d'inscription lundi 30 octobre 2006 Statut Membre Dernière intervention 17 avril 2008 - 17 avril 2008 à 16:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/9090-asp-net-comment-faire-un-upload-de-fichier-simple-du-client-vers-le-serveur

nyco222 Messages postés 1 Date d'inscription lundi 30 octobre 2006 Statut Membre Dernière intervention 17 avril 2008
17 avril 2008 à 16:49
Bonjour à tous,

voila cela fait pas mal d'heures que je suis des tutoriaux pour uploader un fichier sur un serveur et l'envoyer sur un email ... tous les tutoriaux semble fonctionner mais dans mon cas rien ne marche et la j suis au bout de la rupture.
on te dis du genre ouais alors copie colle ca, crée un fichier x.vb, met des dll dans bin, configure web.config et ca marche et tout et tout.
Résultat je vois plus de bla bla que de choses concrètes. Qu'y a-t-il avec ces codes sources ? les gens semblent les garder secret c'est parceque c'est microsoft ??

La j'avoue être perdu, j'aimerai bien faire 2 ou 3 trucs en aspx mais trop de contraintes m'en empêche ... issu du monde libre et de Apache et PHP, je dois dire que j'ai de la peine.

Quelqu'un qui connaitrait une solution complète pour remédier à ce problème d'attachement email pourrait-il donner des explications de type How to ??

Merci en tout cas pour votre dévouement, on voit qu'il y a une réèlle contribution et que finalemetn ca a l'air de marcher ;)

Nyco
JPP80FR Messages postés 29 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 7 mai 2007
20 avril 2007 à 19:18
vous n'aurait pas les source????
cs_Pedrosa Messages postés 42 Date d'inscription lundi 3 juillet 2006 Statut Membre Dernière intervention 2 juin 2008
14 nov. 2006 à 12:52
Hello,
Tu n'as que zipper le dossier en question.
Et, après utiliser le code ci-dessus.
Bon prog.
bsmoumene Messages postés 5 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 10 juillet 2006
10 juil. 2006 à 17:13
Bonjour !
comment uploader un repertoir contenant un lot de fichiers !

Merci
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
7 juil. 2006 à 14:54
Il ne faut pas oublier de mettre le form et disant qu'il est de type fichier :

<form id="Form1" method="post" encType="multipart/form-data" runat="server">
....
</form>

Fabrice
nino97490 Messages postés 2 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 7 juillet 2006
7 juil. 2006 à 13:17
Bonjour,
je viens de tester le code ci-dessus mais j'ai ce msg d'erreur :
-----------------------------------------------------------------
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load type System.Web.UI.WebControls.FileUpload from assembly System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.

Source Error:


Line 80: Select a file to upload:

Line 81:
Line 82:
Line 84:


Source File: c:\inetpub\wwwroot\test.Aspx Line: 82


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573

------------------------------------------------------------------
D'avance merci
hotlines Messages postés 15 Date d'inscription dimanche 7 mars 2004 Statut Membre Dernière intervention 28 décembre 2005
27 déc. 2005 à 05:26
Bonjour , bon voila : je vous donne une exemple complet pour Uploader des fichers sans connaitre le chemain physique du répertoir ou tu va uploadé sur ton hébergeur :
créer un fichier qui s'appel par exemple upload.aspx et copier ce code :



<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="iso-8859-1" %>
<html>
<head>

<script runat="server">

Sub UploadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)

' Before attempting to save the file, verify
' that the FileUpload control contains a file.
If (FileUpload1.HasFile) Then
' Call a helper method routine to save the file.
SaveFile(FileUpload1.PostedFile)
Else
' Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "Désoler ,veuillez sépécifier un fichier à Uploadé"
End If

End Sub

Sub SaveFile(ByVal file As HttpPostedFile)

' Specify the path to save the uploaded file to.
'Dim savePath As String = "/down"
Dim savePath As String = request.physicalapplicationpath & "\down"


' Get the name of the file to upload.
Dim fileName As String = FileUpload1.FileName

' Create the path and file name to check for duplicates.
Dim pathToCheck As String = savePath + fileName

' Create a temporary file name to use for checking duplicates.
Dim tempfileName As String

' Check to see if a file already exists with the
' same name as the file to upload.
If (System.IO.File.Exists(pathToCheck)) Then
Dim counter As Integer = 2
While (System.IO.File.Exists(pathToCheck))
' If a file with this name already exists,
' prefix the filename with a number.
tempfileName = counter.ToString() + fileName
pathToCheck = savePath + tempfileName
counter = counter + 1
End While

fileName = tempfileName

' Notify the user that the file name was changed.
UploadStatusLabel.Text = "A file with the same name already exists." + "
" + _
"Your file was saved as " + fileName

Else

' Notify the user that the file was saved successfully.
UploadStatusLabel.Text = "Your file was uploaded successfully."

End If

' Append the name of the file to upload to the path.
savePath += fileName

' Call the SaveAs method to save the uploaded
' file to the specified directory.
FileUpload1.SaveAs(savePath)

End Sub

</script>

</head>


FileUpload.SaveAs Method Example


<form ID="Form1" runat="server">

Select a file to upload:












<hr />




</form>


</html>

'j'espere que ca va te résoudre le probleme
keops31 Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 25 avril 2006
22 août 2005 à 16:56
J'ai essayé l'impersonation comme décrit sur plusieurs sites, mais toujours le même message d'erreur : "Le cast spécifié n'est pas valide." Ce problème de cast se situe après le "CType" du code ci-dessous :

Si quelqu'un peut m'aider à résoudre ce problème, çà serait sympa. Merci.

Dim impersonationContext As System.Security.Principal.WindowsImpersonationContext
Dim currentWindowsIdentity As System.Security.Principal.WindowsIdentity

currentWindowsIdentity = CType(User.Identity, System.Security.Principal.WindowsIdentity)
impersonationContext = currentWindowsIdentity.Impersonate()

'On sauvegarde le fichier dans le bon répertoire
txtFichier.PostedFile.SaveAs(chemin)

impersonationContext.Undo()
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
26 juil. 2005 à 15:35
Hé zidane,
t'as eu tord de quitter le ballon car l'informatique (et l'orthographe) ça n'a pas l'air d'être ton truc...
De plus, tu t'es un peu planté de sujet.

Le script que tu viens de donner ne sert qu'à associer de la musique à une page Web
l'adresse du fichier musical, on ne peut la deviner, c'est selon ou tu la dépose sur ton hébergeur.
cs_zidane98 Messages postés 2 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 26 juillet 2005
26 juil. 2005 à 13:16
Voilà sur un site j'ai trouver ça:

Pour mettre une musique sur votre blog passer en mode html ou si vous y êtes deja inserer le code suivant:







remplacer la*par l'URL de votre musique (mp3/mid)que vous avez mis/uploader dans vos fichiers puis faites un espace entre le debut de l'URL (http://...) puis placez vous sur la fin de l'URL (.mp3/.mid) puis faites de nouveau un espace.
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
26 juil. 2005 à 13:13
Question ne voulant rien dire.
Désolé mais le MP3 est un format de fichier musical. Donc une url ou un HTML d'un fichier Musical, je ne vois pas de quoi de quoi tu parles.
Romelard Fabrice
cs_zidane98 Messages postés 2 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 26 juillet 2005
26 juil. 2005 à 13:02
Je vois que tu t'y connais alors j'ai une question...

Comment trouver l'URL ou l'HTML d'un mp3 par exemple ?

Merci de me répondre... ;-)
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
21 juil. 2005 à 14:20
Il faut voir à te connecter sur le partage avec un compte.
En effet, il est possible que le Framework utilise le compte par défaut de la machine (ASPNET) qui n'est donc pas connu sur le domaine.

Il faut voir du coté (comme je l'ai déja dit) des credentials (pour l'impersonation), afin de spécifier quel compte est utilisé pour accéder à ce répertoire.

Romelard Fabrice
keops31 Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 25 avril 2006
21 juil. 2005 à 13:21
Malheureusement, toujours le même message:
"The referenced account is currently locked out and may not be logged on to."

Ce n'est pas un problème de droit puisque quand j'enlève les 'full rights' sur le répertoire distant, un autre message d'erreur s'affiche.
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
21 juil. 2005 à 09:38
essaye ça :
chemin ="\\\\nomMachine\\dossierPartageTotalPourTLM\\fic.jpg"
keops31 Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 25 avril 2006
20 juil. 2005 à 13:25
Sympas pour les réponses.
Mais le répertoire dans lequel j'upload est en contrôle totale pour tout le monde...
Sinon, comment fonctionne l'impersonnalisation ? C'est peut-être La solution.

Merci
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
20 juil. 2005 à 11:24
Bonjour,
Les remontées de fichiers ne peuvent se faire sur des Lecteurs "Mapés" (montage dun partage réseau).
En effet, ces "mapages" sont liés à la session utilisateur en cours d'utilisation et le compte faisant fonctionner ASP.NET n'a sans doute pas ces mapages sur la machine.
Il faut donc passer par les URI (\\SERVER\PARTAGE....).
Ensuite sur ce partage, il faut évidement que le compte ASPNET ait les accès en écriture, sinon passer par de l'impersonnation.
Fabrice.
cs_Esquisse Messages postés 77 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 20 juillet 2005
20 juil. 2005 à 11:09
Vu le message je pense que tu as un problèmes de droits.

Tu doit utiliser pour ton site je pense une authentification : vérifie que l'user en question est bien les droits sur le répertoire ou tu veux envoyer l'image. (sinon configure l'user qui est utilisé pour par courri le site dans IIS).

Note : Evidement, il faut que tes users aient les droits en écriture sur le dossier de destination.
keops31 Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 25 avril 2006
20 juil. 2005 à 10:19
Salut,
OK pour l'upload en local mais impossible sur une machine distante...
Ex : txtFichier.PostedFile.SaveAs(chemin)avec :
chemin ="\\nomMachine\\dossierPartageTotalPourTLM\\fic.jpg"
ou même
chemin="Y:\\fic.jpg" (Y:lecteur réseau pointant vers cette ressource).
Message d'erreur :
"The referenced account is currently locked out and may not be logged on to."

A l'aide SVP ! Merci d'avance
flo_yopyop Messages postés 9 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 9 juin 2005
19 mai 2005 à 14:35
je vois vraiement po comment faire en javascript et g regardé un peu partout sur le net pour l'asp.net g rien trouvé
je vais laisser tomber
merci qd meme ^^
cs_Esquisse Messages postés 77 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 20 juillet 2005
19 mai 2005 à 14:26
Si tu veux mettre dans le textebox par défaut style 'c:\image1.jpg' ce n'est pas possible en HTML. Essaie p-e en Javascript mais c'est pas garantit.
flo_yopyop Messages postés 9 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 9 juin 2005
19 mai 2005 à 14:20
jai un petit probleme :
je ne trouve pas la méthode pour entrer une url par défaut dans le champs texte du input.
la seule que je trouve plosible est en ReadOnly !!!???
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
1 mars 2005 à 15:41
Il faut tester le type mime renvoyé
image/* est une image
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
1 mars 2005 à 15:35
Comment peux tu etre sur que le document est une image, tu compares les extensions ?
cs_Esquisse Messages postés 77 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 20 juillet 2005
19 mars 2004 à 15:05
ouep ca marche merci ;)

request.physicalapplicationpath & "\images"
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
19 mars 2004 à 15:02
Esquisse-> Il est probable que tu n'ais pas les droits d'écriture dans le répertoire en question avec l'utilisateur IUSR_NomDeTaMachine
Sinon tu peux récuprer la racine du site avec System.Wub.HttpRequest.PhysicalApplicationPath (c'est peut être pas la bonne chaine d'objet mais c'est bien méthode à utiliser)
cs_Esquisse Messages postés 77 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 20 juillet 2005
19 mars 2004 à 14:48
Salut,

Ton code marche effectivmeent en local mais j'arrive pas a le faire upload soit chez mon hébergeur soit sur mon serveur en local...

je modifie cette variable dans tout les sens mais rien y fait :

Dim RepertoirePhoto As String = "C:\\MonRepertoire"

Mon serveur en local est un répertoire virtuel de IIS 'toto'
Et mon hébergeur a un rep htdocs à la racine.

Comment spécifier que le fichier aille au moins à la racine du site ?
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
2 oct. 2003 à 11:42
Oui c'est exact, mais c'était déja le cas en ASP 3.
Le Enctype est une propriété de l'objet HTML FORM.

Merci tout de même de la précision.

F___
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
1 oct. 2003 à 11:01
Attention, il faut bien rajouter l'attribut enctype="multipart/form-data" à l'élément from qui englobe l'envoi de fichier !!!
Rejoignez-nous