Uploader un fichier et recuperer son nom dans un formulaire [Résolu]

Signaler
Messages postés
52
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
10 juillet 2008
-
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
-
bonjour voila j ai une messagerie en asp et je veux pouvoir uploader un fichier puis recuperer son nom dans un formulaire afin de pouvoir le joindre a ma page de redaction de mail et ensuite enregistrer le tout dans ma base aidez moi please

14 réponses

Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
ah ok, maintenant je comprends le problème

Ce code d'upload (comme les autres...) utiliser le Request.TotalBytes, ce qui fait qu'on ne peux plus ensuite faire de Request.Form !!

Dans ton cas utilises simplement la variable NomFichier !! (elle est là pour ça d'ailleurs...)
<%= NomFichier %>

<hr size="2" width="100%">Nurgle (Antoine)
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Salut,

Pour uploader un fichier, normalement tu as besoin d'un composant serveur (par exemple ASPSmartUpload). Si tu as ce composant installé (il faut voir avec ton hébergeur), tu peux l'utiliser : tappe AspSmartUpload dans le champ recherche de ce site et tu devrais trouver un tutorial sur ce composant

Si tu ne peux pas l'utiliser, tu peux essayer un des scripts d'upload sans composants présents ici en tappant "upload sans composants" dans le champ recherche

<hr size="2" width="100%">Nurgle (Antoine)
Messages postés
52
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
10 juillet 2008
1
j arrive a uploader le fichier mais c apres que je but car je n arrive pas a inserer le nom de mon fichier uploader dans un formulaire afin de l envoyer sur ma page de redaction mail
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
eh bien...il faudrait nous mettre un peu de code, là
comment est ce que tu récupères le nom du fichier ??

et qu'est ce que tu veux dire par "insérer dans un formulaire" ?

<hr size="2" width="100%">Nurgle (Antoine)
Messages postés
52
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
10 juillet 2008
1
6380 octets



& NomFichier &
Position Début: 103 183

image/gif
Position Début: 199 Position Fin: 209
C:\Documents and Settings\iasoft\My Documents\travaux\cityflightbox\fichiers\bart_simpson-0.gif
et la je veux recuperer le lien de mon image afin de l integrer dans ma page de saisie de mail afin de joindre le nom de mon fichier en piece jointe
voici le code

<%@LANGUAGE= "VBSCRIPT"%>
<%

Dim Contenu, TailleContenu, ContenuAscii, I, J, K, Pos
Contenu = Request.BinaryRead(Request.TotalBytes)
TailleContenu = Request.TotalBytes
PosDNomFile=0 'Pos de début du Nom fichier transmis
PosFNomFile=0 'Pos de fin du Nom du fichier transmis
PosDContent=0 'Pos de début du Content-Type du fichier
PosFContent=0 'Pos de fin du Content-Type du fichier
PosDFile=0 'Pos de début du Contenu du fichier
PosFFile=0 'Pos de fin du Contenu du fichier
DownLoadOK = 0 'Si tout est OK
response.write "<center> </center>

"
response.write " " & TailleContenu & " octets

"
' On commence par afficher le contenu du post, on split sur le délimiteur chr(13) qui sépare les
' différents éléments
response.write "<!--"
I = 0
J = 1
Pos = 1
Do While Pos <> 0
Pos = InstrB(J, Contenu, chrB(13))
if Pos <> 0 then
Fragment = MidB(Contenu, J, (Pos-J))
response.write "Position: " & Pos & "/"
response.BinaryWrite Fragment
response.write "
"
J = Pos + 1
end if
loop
response.write "-->"
response.write "

"
' Le controle Filename du formulaire d'envoi et le enctype à multipart génèrent les 2 infos
' necessaires pour traiter notre entrée
''
'' On recherche la position du terme filename =
'' Cela nous donnera la position de début du nom du fichier (PosDNomFile)
''
DelimAscii = "filename=" & chr(34)
DelimBin=""
for K = 1 to Len(DelimAscii)
DelimBin = DelimBin & chrB(ASC(Mid(DelimAscii, K, 1)))
next
''
'' On lui ajoutera ensuite la longueur du terme filename="
''
PosDNomFile = InstrB(1, Contenu, DelimBin)
if PosDNomFile <> 0 then
PosDNomFile = PosDNomFile + LenB(DelimBin)
end if
''
'' On recherche la position du terme Content-Type
'' Cela nous donnera la position de début du Content-Type
''
DelimAscii = "Content-Type:"
DelimBin=""
for K = 1 to Len(DelimAscii)
DelimBin = DelimBin & chrB(ASC(Mid(DelimAscii, K, 1)))
next
PosDContent = InstrB(1, Contenu, DelimBin)
if PosDContent <> 0 then
PosFNomFile = PosDContent - 3 ' sauter le chr(13) et le " qui ferme le nom
PosDContent = PosDContent + LenB(DelimBin)
end if
''
'' On en déduit aisément le nombre de caractères composant le nom du fichier
''
NomFichier = MidB(Contenu, PosDNomFile , (PosFNomFile - PosDNomFile))
ContenuAscii = ""
for K = 1 to LenB(NomFichier)
ContenuAscii = ContenuAscii & chr(ASCB(MidB(NomFichier, K, 1)))
next
NomFichier = ContenuAscii

PosFContent = InstrB(PosDContent, Contenu, chrB(13))
if PosFContent <> 0 then
PosDFile = PosFContent + 4 ' sauter le chr(13) et les blancs
end if

Contenttype = MidB(Contenu, PosDContent , (PosFContent - PosDContent))
ContenuAscii = ""
for K = 1 to LenB(Contenttype)
ContenuAscii = ContenuAscii & chr(ASCB(MidB(Contenttype, K, 1)))
next
Contenttype = ContenuAscii

DelimAscii = "----"
DelimBin=""
for K = 1 to Len(DelimAscii)
DelimBin = DelimBin & chrB(ASC(Mid(DelimAscii, K, 1)))
next

PosFFile = InstrB(PosDFile, Contenu, DelimBin)
if PosFFile <> 0 then
DownLoadOK = 1 ' tout semble ok
end if
''
'' On affiche les valeurs récoltées pour controle pendant le test
''
response.write " "
response.Write " & NomFichier & "
response.write "
Position Début: " & PosDNomFile & " " & PosFNomFile & "
"
response.write "
"
response.Write "" & Contenttype & ""
response.write "
Position Début: " & PosDContent & " Position Fin: " & PosFContent & "
"
response.write "
"
''
'' On conserve le contenu binaire du fichier transmis dans une variable
''
response.write "<!--"
DataFichier = MidB(Contenu, PosDFile , (PosFFile - PosDFile))
response.write "
"
Response.BinaryWrite(DataFichier)
response.write "
P " & PosDFile & " " & PosFFile & "
"
response.write "-->"
''
'' Décommentez ci-dessous pour voir le contenu complet du post au format binaire
''
'response.write "

<center>Données Binaires Brutes ci-dessous</center>
"
'Response.BinaryWrite(Contenu)
Response.write "
"
''
'' Si tout est ok, on écrit dans un fichier à la racine du serveur pour le test
''


response.write "

"
If DownLoadOK = 1 then
Pos = InstrRev(NomFichier, "")
NomFichierCourt = right(NomFichier, (Len(NomFichier) - Pos))
NewFile = Server.MapPath("\cityflightbox\fichiers") & "" & NomFichierCourt
response.write " " & NewFile & " "
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.CreateTextFile(NewFile, True)
For I = 1 to LenB(DataFichier)
Out.Write chr(AscB(MidB(DataFichier,I,1)))

Next
Out.close
Set Out=nothing
Request.Form
end if
%>




<link href="plug_in/style_box.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.Style1 {color: #000000}
-->
</style>
<title>City Flight Box : )</title>





<%= Request.Form("FileTO") %>






et la je veux recuperer le lien de mon image afin de l integrer dans ma page de saisie de mail afin de joindre le nom de mon fichier en piece jointe
Messages postés
52
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
10 juillet 2008
1
car mon request.form ne marche pas sur cette page
Messages postés
52
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
10 juillet 2008
1
franchement merci car j ai cherche cherche et la hop juste le petit nom fichier et ça marche tu es trop fort merci beaucoup
Messages postés
52
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
10 juillet 2008
1
une derniere question apres pour recuperer le nom de mon fichier sur mon autre page j envois le nom en methode post et sur l autre page pour inserer et recuperer le nom j utilise quel type de methode
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Sur l'autre page, là tu peux utiliser Request.Form pour récupérer le nom !
(dans le cas présent, c'était le script d'upload qui empéchait le Request.Form de fonctionner. à partir du moment où il n'y a pas ce script dans la page, tu peux utiliser Request.Form)

Attention quand même : si sur ta deuxième page tu veux le et pas le contenu du fichier qu'il faut utiliser, mais un simple champ text !

<hr size="2" width="100%">Nurgle (Antoine)
Messages postés
52
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
10 juillet 2008
1
desole mais le request form je le colle ou dans ma page car ça marche pas et sinon une autre question desole... mais ma page ou le lien est present pour l uploade mon fichier et deja ouverte et lorsque que j envois mon <%= NomFichier %> via mon formulaire il m ouvre a nouveau une autre page identique il est possible d actualiser la meme page avec mon lien pour ma piece jointe je sais pas si c tres clair tout ça
Messages postés
52
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
10 juillet 2008
1
c bon pour le request form il me reste juste le probleme de la page doublon
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
euh...non, j'ai rien compris...

<hr size="2" width="100%">Nurgle (Antoine)
Messages postés
52
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
10 juillet 2008
1
alors en fait j utilise une page du nom de redigemail.asp sur laquelle j ai mon lien pour uploader un fichier qui souvre en popup, suite au telechargement du fichier j envoi le nom de mon fichier telecharge via un form qui renvois l info via la meme page redigemail.asp qui souvre pour la 2 eme fois donc je veux pouvoir renvoyer le nom du fichier sur la premiere page redigemail.asp
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Salut,

Alors, eh bien, pour renvoyer le nom du fichier à la fenêtre qui a ouvert le popup, tu dois utiliser javascript...
En gros, tu dois, une fois que l'utilisateur a uploadé le fichier, renvoyer un script javascript qui lui même va renvoyer (quand on ferme le popup) une variable à la page qui a lancée le popup.
Après, il faudrait que tu ailles voir sur javascriptfr.com si il n'y a pas un exemple du javascript dont tu as besoin ici, parce que là, je m'en souviens plus...

<hr size="2" width="100%">Nurgle (Antoine)