[ASP] Upload de fichier sans composant

Upload de fichier sans composant [ASP] - ASP - Programmation

Marsh Posté le 15-07-2002 à 18:03:04    

Bonjour,
 
je voudrais uploader des fichiers sur mon servuer web mais sans utiliser de composant du style asp smart upload.
 
Ca marche en local mais pas à depuis un autre poste. J'utilise copyfile...
 
est-ce que c'est comme ça qu'il faut faire ?
 
Merci

Reply

Marsh Posté le 15-07-2002 à 18:03:04   

Reply

Marsh Posté le 15-07-2002 à 18:07:33    

absolument pas ...

Reply

Marsh Posté le 15-07-2002 à 19:45:45    

Et donc ? une idée ???

Reply

Marsh Posté le 17-07-2002 à 17:58:09    

Vas faire un tour sur http://www.aspfr.comil y a ce que tu cherches.

Reply

Marsh Posté le 17-07-2002 à 18:01:02    

merci :)

Reply

Marsh Posté le 08-01-2004 à 14:24:34    

Moi, j'utilise la version la :
http://www.asp-magazine.com/fr/asp/blitz/blitz10.asp
 
Mais quand j'upload un fichier tgz, quand je le retélécharge, il l'ouvre quand meme mais il fait l'erreur "training garbage in gzip file, decompression ended".
Vous avez une idée du pb?
 
Et au lieu de peser 217 288 octets, il pese: 217 290 octets :-/


Message édité par fcoisb le 08-01-2004 à 14:35:48
Reply

Marsh Posté le 08-01-2004 à 17:19:37    

Si tu peux attendre lundi, remonte ce topic à ce moment, je t'enverrai un exemple. (que j'aurai pas sous la main avant lundi :D)


Message édité par MagicBuzz le 08-01-2004 à 17:19:50
Reply

Marsh Posté le 12-01-2004 à 09:39:40    

il me semble bien qu'on est lundi :D
 
Merci Magic Buzz! sans toi je serais au chomage :D

Reply

Marsh Posté le 12-01-2004 à 09:50:35    

Je cherche ça :)
 
J'espère que je peux accéder au serveur, parcequ'il y a la moitié des serveur du réseau de mon entreprise qui ont crâmé ce week-end, et l'autre qui a été volée, alors c'est pas gégène :D

Reply

Marsh Posté le 12-01-2004 à 09:55:36    

Dépatouille toi avec ça, y'a certainement des trucs à modifier :
 


Sub BuildUploadRequest(RequestBin)
 PosBeg = 1
 PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
 boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
 boundaryPos = InstrB(1,RequestBin,boundary)
 
 Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--" )))
 
  Dim UploadControl
  Set UploadControl = CreateObject("Scripting.Dictionary" )
 
  Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition" ))
  Pos = InstrB(Pos,RequestBin,getByteString("name=" ))
  PosBeg = Pos+6
  PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
 
  Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
  PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename=" ))
  PosBound = InstrB(PosEnd,RequestBin,boundary)
 
  If  PosFile<>0 AND (PosFile<PosBound) Then
 
   PosBeg = PosFile + 10
   PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
   FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
 
   UploadControl.Add "FileName", FileName
   Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:" ))
   PosBeg = Pos+14
   PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
 
   ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
   UploadControl.Add "ContentType",ContentType
 
   PosBeg = PosEnd+4
   PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
   Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
  Else
   Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
   PosBeg = Pos+4
   PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
   Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
  End If
 
  UploadControl.Add "Value" , Value
 
  UploadRequest.Add name, UploadControl  
 
  BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
 Loop
End Sub
 
Function getByteString(StringStr)
 For i = 1 to Len(StringStr)
  char = Mid(StringStr,i,1)
  getByteString = getByteString & chrB(AscB(char))
 Next
End Function
 
Function getString(StringBin)
 getString =""
 For intCount = 1 to LenB(StringBin)
  getString = getString & chr(AscB(MidB(StringBin,intCount,1)))  
 Next
End Function
 
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary" )
 
BuildUploadRequest  RequestBin
 
 
'--- file 1 ---
contentType = UploadRequest.Item("file1" ).Item("ContentType" )
 
filepathname = UploadRequest.Item("file1" ).Item("FileName" )
 
' filename = nom complet du cv du candidat  
 
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\" ))
 
' modif du 04/10/2002 par chb
' nom du fichier cv unique grâce à concaténation de la date et l'heure
 
filename = replace(replace(filename,".","_" & date() & "" & time() & "." ),"/","" )
filename = replace(filename,":","-" )
filename = replace(filename,"-","" )
 
 
'|------| chemin complet de l'endroit ou sont stocké les cv des candidats  |------|
' nom_local="D:\Inetpub\wwwdata\www.unionfinancieredefrance.fr\public_html\cv\" & filename
'|--------------------------------------------------------------------------------|
 
'|----| extension en majuscules |----|
 extens=ucase(right(filename,3)) '|
'|-----------------------------------|
 
if ajuimg=1 and extens<>"GIF" then
 pi="&pasdimg=1"
 Response.Redirect redir&pi
else
 
 if not filename="" then  
 
  value = UploadRequest.Item("file1" ).Item("Value" )
  Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject" )
  Set MyFile = ScriptObject.CreateTextFile(Server.mappath(path_cv)&"\" & filename)
 
  For i = 1 to LenB(value)
   MyFile.Write chr(AscB(MidB(value,i,1)))
  Next
  MyFile.Close
  set myfile = nothing
 
 
  if not nomdufich="" then
   takefile=nomdufich+filename
   'Response.Redirect redir+takefile
  else
   'Response.Redirect redir
  end if
 end if
 
end if
 
 
DIM cursus(3)
DIM cursannee(3)
DIM exprof(5)
dim anneeprof(5)
 
 
nom =  UploadRequest.Item("nom" ).Item("Value" )
prenom =  UploadRequest.Item("prenom" ).Item("Value" )
adresse =  UploadRequest.Item("adresse" ).Item("Value" )
ville =  UploadRequest.Item("ville" ).Item("Value" )
cp =  UploadRequest.Item("codepostal" ).Item("Value" )
tel =  UploadRequest.Item("tel" ).Item("Value" )
email = UploadRequest.Item("email" ).Item("Value" )
file =  UploadRequest.Item("file1" ).Item("Value" )


 
Voilà, dans l'exemple y'a ce qu'il faut pour récuprer les champs "tout bêtes" et les fichiers en upload.

Reply

Marsh Posté le 12-01-2004 à 09:55:36   

Reply

Marsh Posté le 13-01-2004 à 09:43:21    

Moi aussi, pour mon projet de fin d'année en école d'ingénieur en info, j'ai fait un outil en asp + access :( Et puis plus tard, je me suis mis au php :) Quand je pense que pour faire une upload de fichier en php, ça prend 2 lignes... :D

Reply

Marsh Posté le 13-01-2004 à 10:08:28    

En ASP aussi, il suffit de passer par un composant.

Reply

Marsh Posté le 13-01-2004 à 10:26:30    

MagicBuzz a écrit :

En ASP aussi, il suffit de passer par un composant.


 
sauf qu'il n'est pas dispo en "standard"...

Reply

Marsh Posté le 13-01-2004 à 11:18:12    

Si, il y a un composant qui peut être installé directement depuis le site de M$, et distribué via la MSDN, et dont le code (C++) y figure si on veut le compiler soit-même.


Message édité par MagicBuzz le 13-01-2004 à 11:18:27
Reply

Marsh Posté le 13-01-2004 à 12:43:32    

c'est un peu le bins tout ça!

Reply

Marsh Posté le 13-01-2004 à 13:04:50    

fcoisb a écrit :

c'est un peu le bins tout ça!


 
C'est clair!
 
Quand je vois tout ce que le PHP fait en natif par rapport à l'ASP...!

Reply

Marsh Posté le 28-01-2004 à 11:25:36    

Je vais essayer de faire avec ce que tu m'as donné magic buzz mais ça utilise un dictionnary.. ché pas quoi...
Si jamais quelqu'un à juste une page code pour récupérer simplement le fichier et rien d'autre, n'hésitez pas :-D
 
merciiiiiiiii

Reply

Marsh Posté le 28-01-2004 à 14:13:55    

l'objet dictionnary est de base présent sur n'importe quelle machine avec IE 4 ou plus. (donc forcément présent avec IIS à partir de la V4)

Reply

Marsh Posté le 05-02-2004 à 11:30:52    

voila, j'ai trouvé ça :
 
http://www.aspfr.com/article.aspx?ID=144
 
c hyper simple.
une page et un .inc pour tout gérer tout seul :-D
 
ça marche nickel
 
merci pour tout


Message édité par fcoisb le 05-02-2004 à 12:59:54
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed