Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2992 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Probleme limite Upload

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP] Probleme limite Upload

n°877730
oxoid
Matos pas cher et bone qualité
Posté le 20-10-2004 à 09:14:26  profilanswer
 

Bonjour,
 
j'ai un gros problème que je dois absolument réglé au plus vite; voilà, j'ai fait une partie upload download sur mon intranet et ya une partie qui ne marche pas :
 
J'arrive a faire fonctionner mon code, l'upload fonctionne, mais que pour des fichiers <2 Mo et je pîge pas pourquoi, ocmment faire pour agrandir cette limite ?  
help ! merci  
 
ps : voici le code :
 
<%
'Initialize the component
Set myup = Server.CreateObject("NetVIOSUpload.Upload" )
'Set the name of the GUI control used in acquiring the file (from the first file)
 
myup.FileUploadControl = "File1"
'Set the path on the web server in which file is to be saved
 
myup.SavePath = "d:\intranet\transfert"
'Set the maximum allowable file size in bytes
 
myup.FileType = "Alltypes"
 
'myup.MaximumSize = 500000000000
'Set the overwrite property
 
myup.OverwriteFiles = True
'Perform the upload
 
upresult = myup.Upload()
 
If (upresult = "Success" ) Then
'Print an optional report of files downloaded
For i = 1 To myup.GetFileCount
 
Response.Write "The file - " & myup.GetFileName(i) & " of size " & myup.GetFileSize(i)
Response.Write " was successfully uploaded!"
Response.Redirect("transfertok.asp" )
 
Next
else
Response.Redirect("transferterreur.asp" )
End If
 
'Destroy the upload component instance after use
Set myup = Nothing
%>
 
 
+++  

mood
Publicité
Posté le 20-10-2004 à 09:14:26  profilanswer
 

n°877736
alien_nan
Posté le 20-10-2004 à 09:36:44  profilanswer
 

oXoiD a écrit :

Bonjour,
 
j'ai un gros problème que je dois absolument réglé au plus vite; voilà, j'ai fait une partie upload download sur mon intranet et ya une partie qui ne marche pas :
 
J'arrive a faire fonctionner mon code, l'upload fonctionne, mais que pour des fichiers <2 Mo et je pîge pas pourquoi, ocmment faire pour agrandir cette limite ?  
help ! merci  
 
ps : voici le code :
 
<%
'Initialize the component
Set myup = Server.CreateObject("NetVIOSUpload.Upload" )
'Set the name of the GUI control used in acquiring the file (from the first file)
 
myup.FileUploadControl = "File1"
'Set the path on the web server in which file is to be saved
 
myup.SavePath = "d:\intranet\transfert"
'Set the maximum allowable file size in bytes
 
myup.FileType = "Alltypes"
 
'myup.MaximumSize = 500000000000
'Set the overwrite property
 
myup.OverwriteFiles = True
'Perform the upload
 
upresult = myup.Upload()
 
If (upresult = "Success" ) Then
'Print an optional report of files downloaded
For i = 1 To myup.GetFileCount
 
Response.Write "The file - " & myup.GetFileName(i) & " of size " & myup.GetFileSize(i)
Response.Write " was successfully uploaded!"
Response.Redirect("transfertok.asp" )
 
Next
else
Response.Redirect("transferterreur.asp" )
End If
 
'Destroy the upload component instance after use
Set myup = Nothing
%>
 
 
+++


 
la taille maxi se configure sous IIS  
=> http://x220.win2ktest.com/forum/to [...] IC_ID=4550

n°877739
akanico
Captain Slow
Posté le 20-10-2004 à 09:37:59  profilanswer
 

Regarde ICI. Ca marche très bien sans problème de taille.
 
Ton message d'erreur est un Time out?

n°877755
oxoid
Matos pas cher et bone qualité
Posté le 20-10-2004 à 10:15:30  profilanswer
 

mon message met : Impossible d'afficher la page
ou sinon, des fois il me met : error line 20
>upresult = myup.Upload()  
 
donc je sais pas trop. je pige pas pk ca marche avec les petits fichiers

n°877759
oxoid
Matos pas cher et bone qualité
Posté le 20-10-2004 à 10:21:52  profilanswer
 

En gros faut aller dans quoi alien_nan ? car je m'y connais pas trop niveau serveur etc, et chui dans une entreprise, donc g pas envie de casser ou foutre la merde dans leur serveur

n°877769
oxoid
Matos pas cher et bone qualité
Posté le 20-10-2004 à 10:33:48  profilanswer
 

akanico, j'ai essayé, mais bon, erreur bien con, il m'affiche en txt le contenu de oz.asp au lieu de lancer le code qu'il ya dedans quoi ... erf pourquoi ?

n°877785
oxoid
Matos pas cher et bone qualité
Posté le 20-10-2004 à 10:45:57  profilanswer
 

CA MARCHE !!!!!! té un patron akanico

n°877789
oxoid
Matos pas cher et bone qualité
Posté le 20-10-2004 à 10:51:06  profilanswer
 

par contre, ca met vachement longtemps, pour un fichier de 4 mo, chui deja a 5 min et cé pa encore fini, sinon pour que ca redirige vers une autre page quand c'est fini , on fait comment, je vois pas dans le code :
 
<%
'**********************************************'
'*****Upload sans composant ASP, by Oz, Paris*******'
'**********************************************'
 
 
'********** Fonctions secondaires *************
 
'+--------------------------------------{ Méthode : recherchePosition }-----+
'!                                                                          !
'! recherchePosition(position_debut,chaine,chaine_recherchee)               !
'!                                                                          !
'! role : retourne la position de "chaine_recherchee" dans         !
'!        "chaine". La recherche debute à "position_debut".                 !
 
'! Valeur retournee : position ou "0" si la chaine n est pas trouvée.       !
'+--------------------------------------------------------------------------+
function recherchePosition(position_debut,chaine,chaine_recherchee)
 
  PosDebutFic = Instrb(position_debut, chaine, chaine_recherchee)
 
 ' -------------------
 ' On lui ajoute ensuite la longueur du terme filename=" ce qui nous permet d'avoir la position de début du nom du fichier (PosDebutFic)
  'recherchePosition = PosDebutFic+Lenb(chaine_recherchee)
 recherchePosition =PosDebutFic
 
end function
 
 
'+-----------------------------------------{ Méthode : asciiTObinaire }-----+
'!                                                                          !
'! asciiTObinaire(chaine)                                                   !
'!                                                                          !
'! role : Transforme une chaine binaire en chaine ASCII.                    !
'!                                                                          !
'! Parametres : chaineBinaire = chaine binaire à transformer.               !
'!                                                                          !
'! Valeur retournee : chaine ASCII                                          !
'!                                                                          !
'+--------------------------------------------------------------------------+
function asciiTObinaire(chaine)
 For I=1 to len(chaine)
  B = B & ChrB(Asc(Mid(chaine,I,1)))
 Next
 asciiTObinaire = B
End Function
 
'+-----------------------------------------{ Méthode : binaireTOascii }-----+
'!                                                                          !
'! binaireTOascii(chaineBinaire)                                            !
'!                                                                          !
'! role : Transforme une chaine binaire en chaine ASCII.                    !
'!                                                                          !
'! Parametres : chaineBinaire = chaine binaire à transformer.               !
'!                                                                          !
'! Valeur retournee : chaine ASCII                                          !
'!                                                                          !
'+--------------------------------------------------------------------------+
function binaireTOascii(chaineBinaire)
 ContenuAscii = ""
 for Z = 1 to LenB(chaineBinaire)
  ContenuAscii = ContenuAscii & chr(ASCB(MidB(chaineBinaire, Z, 1)))
 next
 binaireTOascii = ContenuAscii
end function
 
 
'*********** FIN des Fonctions secondaires******************'
 
 
'********************************
'***** FONCTION PRINCIPALE*******
'********************************
'********************************
 
' a appeler par votre script ASP pour le traitement de l'upload.
'-->arguments :  
' chainebinaire = Request.BinaryRead(Request.TotalBytes) : Content-Type issue de l'upload
' number = nombre de champs d'upload dans le formulaire ( peut etre amélioré)
' extensionsUploadees: chaine contenant les extensions permises pour l'upload ( séparées par un espace) !!
 
function LancementUpload (chainebinaire, number,extensionsUploadees)
 
 'chainebinaire = Request.BinaryRead(Request.TotalBytes)  
 'Grâce à la méthode BinaryRead on lit la totalité du post en mode binaire que l'on place dans une variable Contenu  
 'La propriété TotalBytes nous Indique le nombre total des octets envoyés par le client dans le corps du message de requête.  
 '-------------------
 
 Server.ScriptTimeOut=1000
 
 ' variable interne qui va nous permettre de nous "balader" dans le Content-Type.
 index=60
 
 'string a recuperer a la fin du traitement et qui va permettre de mettre a jour une base de données ...
 'sous la forme : "[nom_du_champ_du_formulaire],[nom_du_fichier_uploadé];"
 'il suffit ensuite de faire un traitement du type split(stringgeneral,";" ) pour recuperer ces valeurs et les mettre dans une base de données.
 ' ( a enlever si vous utilisez uniquement l'UPLOAD, sans une mise a jour BDD ).
 stringgeneral=""
 
 'on commence la boucle d'upload
 for j=1 to number
 
  'initialisation des 3 variables principales utilisées
  NomFichier=""
  nameform=""
  DataFichier=""
  'init de la variable de controle des extensions
  ctrlext=0
     
  'A / Recherche du nom du fichier uploadé
  '---------------------------------'
  PosDebutFilename  = recherchePosition(index,chainebinaire,asciiTObinaire("filename=" & chr(34)))+10
  if PosDebutFilename <> 0 then
   PosDebutContentType = recherchePosition(index,chainebinaire,asciiTObinaire("Content-Type:" ))
 
   ' On trouve la position de la fin du nom du fichier à partir de la position  
   ' du début du terme Content-Type: à laquelle on retire trois octets
   ' (un espace, une " et la première lettre du terme)
   PosFinFilename = PosDebutContentType - 3
 
   if PosFinFilename > PosDebutFilename then
    NomFichier = binaireTOascii(midb(chainebinaire,PosDebutFilename,(PosFinFilename-PosDebutFilename)))
   end if
   Position = InstrRev(NomFichier, "\" )  
   NomFichierCourt = right(NomFichier, (Len(NomFichier) - Position))   'nom du fichier SANS le chemin d'acces.
   'si un fichier uploadé dans ce champ ...
   If (trim(NomFichierCourt))<>"" then
    'on trouve l extension du fichier et on la compare aux extensionsUploadees
    tab=split(NomFichierCourt,"." )
    ext = tab(ubound(tab))
    'si extensionsUploadees a ete remplie...
    if(extensionsUploadees<>"" ) then
     tab2=split(extensionsUploadees," " )
     for each exti in tab2
      if(exti=ext) then ctrlext=1 end if
     next
    'sinon, on met ctrlext automatiquement a 1
    else
     ctrlext=1
    end if
   end if
  end if
 
  'on ne va plus loin que si le ctrlext est OK
  if(ctrlext=1) then
 
   'B / Recherche du nom du champ du formulaire correspondant'
   'on a besoin de cette valeur pour mettre les valeurs dans la base de données
   PosDebutName = recherchePosition(index,chainebinaire,asciiTObinaire("name="&chr(34))) + 6
   if(PosDebutName<>0) then
    PosDebutFilename= recherchePosition(index,chainebinaire,asciiTObinaire("filename="&chr(34)))
    ' on trouve la position de la fin du nom du champ a partir de la position
    'du debut du terme "filename=", a laquelle on retire 3 octets :
    PosFinName = PosDebutFilename-3
    if(PosFinName > PosDebutName) then
     nameform=binaireTOascii(midb(chainebinaire,PosDebutName,(PosFinName-PosDebutName)))
    end if
   end if
 
 
   'C / Recherche du contenu du fichier
   oz = recherchePosition(index,chainebinaire,asciiTObinaire("Content-Type:" ))+14  'fin du mot "Content-Type"
   
   'debut du contenu du fichier
   'a cet endroit, bcp de scripts que j'ai vus faisaient une erreur d'algo et  
   ' on se retrouvait avec des fichiers uploadés qui etaient BINAIREMENT (donc, souvent dans le contenu)
   ' différent du fichier original. J'ai debuggé en trouvant LA formule.
   PosDebutContenu = recherchePosition(oz,chainebinaire,asciiTObinaire(chr(13)))+4
 
   'fin du contenu du fichier
   PosFinContenu=recherchePosition(PosDebutContenu, chainebinaire, asciiTObinaire("----------" ))
 
   'on en deduit le contenu (BINAIRE) du fichier a uploader.
   DataFichier =midb(chainebinaire, PosDebutContenu, PosFinContenu-PosDebutContenu)
   
   'D/ Ecriture des données sur le serveur
   '-------------------  
   stringgeneral=stringgeneral & nameform &","&NomFichierCourt&";"
   NouveauFic = Server.MapPath("" & NomFichierCourt)
   Set FileObject = Server.CreateObject("Scripting.FileSystemObject" )
   Set Out=FileObject.CreateTextFile(NouveauFic, True)
   For I = 1 to LenB(DataFichier)
    Out.Write chr(AscB(MidB(DataFichier,I,1)))
   Next
   Out.close
   Set Out=nothing
   
  end if 'fin if(ctrlext=1)
   
  'on met a jour l'index pour la recherche d'apres.
  index=PosDebutContentType+20
 
 next  'fin for j=1 to number
 LancementUpload=stringgeneral
end function
%>

n°877829
akanico
Captain Slow
Posté le 20-10-2004 à 11:47:21  profilanswer
 

oXoiD a écrit :

CA MARCHE !!!!!! té un patron akanico


 
Merci! Mais ce n'est pas de moi. C'est vrai que ça met un peu de temps mais ça dépend aussi de la bande passante.

n°877970
oxoid
Matos pas cher et bone qualité
Posté le 20-10-2004 à 14:30:10  profilanswer
 

bon, laisse tombé, apparement, c'est méga bcp trop lent, et ca ne viens pas de ma boite, car meme pour un fichier de 10 ko, ca met relativement longtemps, ce qui n'est pas du tout normal, on m'a demandé de faire avec ASPUPLOAD, mais je pige pas, il me met cette erreur :
/intranet/UploadScript1.asp, line 10
 
ce qui correspond a :
 Set Upload = Server.CreateObject("Persits.Upload" )
 
sachant que le code entier est :
 
<!-- AspUpload Code samples: UploadScript1.asp -->
<!-- Invoked by Form1.asp -->
<!-- Copyright (c) 2001 Persits Software, Inc. -->
<!-- http://www.persits.com -->
 
<HTML>
<BODY>
 
<%
Set Upload = Server.CreateObject("Persits.Upload" )
Count = Upload.Save("c:\upload" )
 
Response.Write Count & " file(s) uploaded to c:\upload "
 
%>
 
</BODY>
</HTML>
 
 
qq a til une reponse ?

mood
Publicité
Posté le 20-10-2004 à 14:30:10  profilanswer
 

n°878093
akanico
Captain Slow
Posté le 20-10-2004 à 15:53:32  profilanswer
 

C'est étonnant..... C'est pas rapide mais ça va quand même  (une vingtaine de secondes pour un fichier de 1Mo). C'est suffisant dans mon cas.
 
Tes fichiers font quelles tailles?


Message édité par akanico le 20-10-2004 à 15:53:57
n°878100
oxoid
Matos pas cher et bone qualité
Posté le 20-10-2004 à 15:55:07  profilanswer
 

ca va de 5ko a 100 mo, mais nan, la ca couille, je sais pas de quoi ca vient mais c'est bcp trop lent, enfin bon, j'essaye avec aspupload, t'as lu mon probleme ?
 
je pige pas, pourtant ya ligne de code, ca devrait marcher nan ?

n°879351
Bilou33
Posté le 21-10-2004 à 19:10:38  profilanswer
 

Salut,
J'ai sensiblement le même problème qu'Oxoid.
 
J'ai fait un upload avec AspSmartUpload, ça marche bien pour des petits fichiers, mais dès qu'on atteint les 3 Mo (environ), on obtient un message d'erreur de timeout.
Dans le message, il est marqué qu'on peut régler ce problème dans la config d'IIS, mais après une fouille minutieuse, je n'ai rien trouvé comme paramétrage de ce genre...  :??:  
 
Pour complément d'information, je suis sous XP avec IIS 5.1.
 
C'est con parce que le but de mon système est de transférer surtout des fichiers très lourds destinés à l'impression (environ 500 Mo).
Donc, si quelqu'un connaît un meilleur système qu'AspSmartUpload, merci du coup de main.
 
Par ailleurs, est-ce que quelqu'un saurait comment intégrer une barre de progression dans le transfert du fichier?
 
Merci d'avance.

n°879735
oxoid
Matos pas cher et bone qualité
Posté le 22-10-2004 à 09:10:41  profilanswer
 

ouais, j'avoue, ca m'interesserait aussi, il me semble sinon, que pour les gros gros fichiers, on m'a dit qu'un ftp serait mieux.
 
Sinon, encore des questions :
j'ai trouvé dirtlist 211 , c'est un petit programme qui permet également d'uploader etc, et qui en plus possède une petite interface pour voir les fichiers uploadé dans des dossiers etc.. enfin assez sympa, le problème est que je n'arrive pas à trouver le dossier "parent" a régler pour qu'il voit les fichiers que j'upload. je vous donne donc le code, et la fiche explicative (site) :
http://www.asp-magazine.com/fr/dirlist/
 
sinon, voilà le code, c'est assez long  :ange:  
 

Code :
  1. <%
  2. Response.expiresAbsolute=now()-1
  3. Response.buffer=True
  4. Server.ScriptTimeout=500
  5. action = Request.ServerVariables ("SCRIPT_NAME" )
  6. %>
  7. <%
  8. Sub ShowLoginForm
  9. response.write ("<form method=post action="& action &" id=form1 name=form1>" )
  10. response.write ("<table width=50% align=center border=0 cellspacing=0 cellpadding=0>" )
  11. response.write ("<tr bgcolor=#003366>" )
  12. response.write ("<td><table width=100% border=0 cellspacing=0 cellpadding=1>" )
  13. response.write ("<tr>" )
  14. response.write ("<td><font face=Verdana, Arial, Helvetica, sans-serif size=2 color=#FFFFFF><b>Administration</b></font></td>" )
  15. response.write ("</tr>" )
  16. response.write ("<tr>" )
  17. response.write ("<td><font face=Verdana, Arial, Helvetica, sans-serif size=2 color=#FFFFFF>Nom:</font>" )
  18. response.write ("<input type=text name=login size=8> </td>" )
  19. response.write ("</tr>" )
  20. response.write ("<tr>" )
  21. response.write ("<td><font face=Verdana, Arial, Helvetica, sans-serif size=2 color=#FFFFFF>pass:</font>" )
  22. response.write ("<input type=password name=pass size=8> </td>" )
  23. response.write ("</tr>" )
  24. response.write ("<tr align=center>" )
  25. response.write ("<td><input type=submit name=Submit value=Entrez class=button1> </td>" )
  26. response.write ("</tr>" )
  27. response.write ("</table>" )
  28. response.write ("</td>" )
  29. response.write ("</tr>" )
  30. response.write ("</table>" )
  31. response.write ("</form>" )
  32. End Sub
  33. %>
  34. <html>
  35. <head>
  36. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  37. <style type="text/css">
  38. <!--
  39. .button1 {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9pt; color: #FFFFFF; text-decoration: none; background-color: #006699}
  40. -->
  41. </style>
  42. <title>Administration avec Dirlist: compte <%= session("dirusername" )%></title>
  43. <style>
  44. <!--
  45. td { font:  10pt Verdana, Arial, Helvetica, sans-serif; color: #0000FF; text-decoration: none; border: 0px none }
  46. // -->
  47. </style>
  48. <script language="javascript">
  49. function suppr_file(filename) {
  50. if (confirm('Souhaitez vous supprimer le fichier '+filename+' ?')) {
  51. document.forms['controle'].elements['filename'].value=filename
  52. document.forms['controle'].elements['typ'].value=0
  53. document.forms['controle'].submit()
  54. }
  55. }
  56. function modif_file(filename) {
  57. valeur=prompt('Donnez un nouveau nom à ce fichier : ',filename)
  58. if ((valeur) && (valeur!="" )) {
  59. document.forms['controle'].elements['filename'].value=filename
  60. document.forms['controle'].elements['filenamenew'].value=valeur
  61. document.forms['controle'].elements['typ'].value=1
  62. document.forms['controle'].submit()
  63. }
  64. }
  65. function modif_rep(repname) {
  66. valeur=prompt('Donnez un nouveau nom à ce répertoire : ',repname)
  67. if ((valeur) && (valeur!="" )) {
  68. document.forms['controle'].elements['repname'].value=repname
  69. document.forms['controle'].elements['repnamenew'].value=valeur
  70. document.forms['controle'].elements['typ'].value=2
  71. document.forms['controle'].submit()
  72. }
  73. }
  74. function suppr_rep(repname) {
  75. if (confirm('Souhaitez vous supprimer le répertoire '+repname+' ?')) {
  76. document.forms['controle'].elements['repname'].value=repname
  77. document.forms['controle'].elements['typ'].value=4
  78. document.forms['controle'].submit()
  79. }
  80. }
  81. function add_rep() {
  82. valeur=prompt('Donnez un nom au nouveau répertoire : ','')
  83. if ((valeur) && (valeur!="" )) {
  84. document.forms['controle'].elements['repnamenew'].value=valeur
  85. document.forms['controle'].elements['typ'].value=3
  86. document.forms['controle'].submit()
  87. }
  88. }
  89. </script>
  90. </head>
  91. <body style="font-family: Verdana, Arial" link="#FF0000" vlink="#FF0000" alink="#FF00FF">
  92. <%
  93. Dim OK
  94. OK=true
  95. If session("dirRepertoire" ) = "" then
  96. OK=False
  97. login = Request.Form ("login" )
  98. pass = Request.Form ("pass" )
  99. If login<>"" then
  100. '===================================================
  101. 'Modifications du 28/11/2000 rui - www.artofnet.com
  102. 'Modifications du 30/11/2000 jean-christophe - www.asp-magazine.com
  103. '===================================================
  104. '- Securité utilisateur
  105. 'au premier démarage du script on affiche un formulaire de connexion,
  106. 'si l'utilisateur est reconnu on affiche l'outil dirlist. La connexion
  107. 'reste valable durant toute la durée de la session. la base se trouve a
  108. 'pour chemin ./admart.mdb.
  109. 'Cette base de données est simpliste mais permet néanmoins un support
  110. 'multi-utilisateurs avec chacun le droit de modifier son répertoire propre.
  111. '- Utilisation avec la racine:
  112. 'correction du bug qui empechait l'utilisation de l'upload quand le
  113. 'répertoire parent était "" (soit donc la racine).
  114. '===================================================
  115.  ' chaine de connexion
  116.  connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.MapPath("." ) & "/admart.mdb"
  117.  ' requête sql
  118.  sql = "Select * FROM users WHERE nom='" & login & "' AND pass='" & pass & "'"
  119.      Set conn = Server.CreateObject("ADODB.Connection" )
  120.  conn.Open connstring
  121.  Set rs = server.CreateObject ("ADODB.REcordset" )
  122.  rs.Open sql,conn,3,3
  123.  If not rs.eof then
  124.   rs.movefirst
  125.   session("dirusername" ) = rs.fields("nom" )
  126.   session("dirRepertoire" ) = rs.Fields ("repertoire" )
  127.   ok=True
  128.  Else
  129.   Response.Write "<script language=javascript>"
  130.   Response.Write "alert('Les paramètres de connection son incorrects, veuillez recommencer');"
  131.   Response.Write "</script>"
  132.   ShowLoginForm
  133.  End If
  134.  rs.close
  135.  set rs = nothing
  136.  conn.close
  137.  set conn = nothing
  138. Else
  139.  ShowLoginForm
  140. End If
  141. end if
  142. if ok=true then
  143. 'si tout est OK on afiche la suite...
  144. ' DIRLIST de aspmagazine.com modifié par nc-technologies pour l'ajout d'upload de fichiers
  145. ' www.nc-technologies.com
  146. ' Les images se trouvent dans un dossier IMG
  147. msg=""
  148. dim parent
  149. dim encours
  150. dim Systeme_fichier
  151. dim Repertoire
  152. dim curseur
  153. '----- Le répertoire parent détermine le root de dirlist
  154. '----- "" indique qu'il s'agit de la racine du serveur
  155. '----- indiquez le root par exemple comme ceci : parent="/fr/mesdocs"
  156. '-***************************************************************************************************
  157. '-***************************************************************************************************
  158. Parent=session("" )
  159. '-***************************************************************************************************
  160. '-***************************************************************************************************
  161. ' SECURITE : Renaud COLAS - www.2si-systemes.fr
  162. ' Correction d'un problème de sécurité avec utilisation de .. dans la variable rep
  163. ' ---------------------------------------------------------------------
  164. encours=request("rep" )
  165. ' on vérifie que l'utilisateur ne passe pas de "../" dans le chemin
  166. if inStr(encours,".." )>0 then
  167. response.write("<script language=""javascript"">window.history.back()</script>" )
  168. response.end
  169. end if
  170. '---- SUPPRESSION D'UN FICHIER :
  171. '----
  172. if request("typ" )=0 and trim(request("filename" ))<>"" then
  173. '---- Supprime un répertoire spécifié par name et se trouvant dans root
  174. filename=replace(request("filename" ),"+"," " )
  175. Set fs=server.createObject("Scripting.filesystemObject" )
  176. If fs.FileExists(Server.mapPath(parent&encours&"/"&filename)) Then
  177. fs.deleteFile(Server.mapPath(parent&encours&"/"&filename))
  178. end if
  179. set fs=nothing
  180. end if
  181. '---- RENOMMAGE D'UN FICHIER
  182. '----
  183. if request("typ" )=1 and trim(request("filenamenew" ))<>"" then
  184. '---- Supprime un répertoire spécifié par name et se trouvant dans root
  185. filename=replace(request("filename" ),"+"," " )
  186. filenamenew=request("filenamenew" )
  187. Set fs=server.createObject("Scripting.filesystemObject" )
  188. Set f=fs.GetFile(Server.mapPath(parent&encours&"/"&filename))
  189. If fs.FileExists(Server.mapPath(parent&encours&"/"&filename)) Then
  190. If fs.FileExists(Server.mapPath(parent&encours&"/"&filenamenew)) Then
  191. msg="<font face=verdana color=red size=2>Impossible de renommer, un fichier du même nom existe déjà</font>"
  192. else
  193. f.name=filenamenew
  194. end if
  195. end if
  196. set fs=nothing
  197. end if
  198. '----- AJOUT D'UN REPERTOIRE
  199. '---
  200. if request("typ" )=3 and trim(request("repnamenew" ))<>"" then
  201. '---- Supprime un répertoire spécifié par name et se trouvant dans root
  202. '---- Renomme un répertoire spécifié par name et se trouvant dans root
  203. repnamenew=request("repnamenew" )
  204. Set fs=server.createObject("Scripting.filesystemObject" )
  205. Set f=fs.Getfolder(Server.mapPath(parent&encours))
  206. Set f1=f.Subfolders
  207. '---- Si le répertoire n'existe pas
  208. If not fs.FolderExists(Server.mapPath(parent&encours&"/"&repnamenew)) Then
  209. f1.add(repnamenew)
  210. else
  211. msg="<font face=verdana color=red size=2>Impossible d'ajouter, un répertoire du même nom existe déjà</font>"
  212. end if
  213. set f1=nothing
  214. set f=nothing
  215. set fs=nothing
  216. end if
  217. '----- RENOMMAGE D'UN REPERTOIRE
  218. '---
  219. if request("typ" )=2 and trim(request("repname" ))<>"" then
  220. repname=replace(request("repname" ),"+"," " )
  221. repnamenew=request("repnamenew" )
  222. Set fs=server.createObject("Scripting.filesystemObject" )
  223. Set f=fs.Getfolder(Server.mapPath(parent&encours&"/"&repname))
  224. '----- Si le répertoire existe
  225. If fs.FolderExists(Server.mapPath(parent&encours&"/"&repname)) Then
  226. If fs.FolderExists(Server.mapPath(parent&encours&"/"&repnamenew)) Then
  227. msg="<font face=verdana color=red size=2>Impossible de renommer: un répertoire du même nom existe déjà</font>"
  228. else
  229. f.name=repnamenew
  230. end if
  231. end if
  232. set f=nothing
  233. set fs=nothing
  234. end if
  235. '----- SUPPRESSION D'UN REPERTOIRE
  236. '---
  237. if request("typ" )=4 and trim(request("repname" ))<>"" then
  238. repname=replace(request("repname" ),"+"," " )
  239. Set fs=server.createObject("Scripting.filesystemObject" )
  240. If fs.FolderExists(Server.mapPath(parent&encours&"/"&repname)) Then
  241. fs.deleteFolder(Server.mapPath(parent&encours&"/"&repname))
  242. end if
  243. set fs=nothing
  244. end if
  245. ' UPLOAD : Nicolas CHU - www.nc-technologies.com
  246. ' Upload de n'importe quel fichier présent sur le disque
  247. ' ---------------------------------------------------------------------
  248. if request("Test" )=1 then ' test si c'est un upload
  249. ' On récupère le Nom du dossier en cours avec la variable rep sans le /
  250.   Doss=Request("rep" )
  251.   if Doss <>"" then
  252.   nbCara=Len(Doss)-1
  253.   Dossier = Right(Doss, nbCara) 
  254.   end if
  255.    Dim bytecount, RequestBin,ContenuAscii, X, Y, Z, Position
  256. ' On récupère la totalité du post en mode binaire et sa taille
  257. byteCount = Request.TotalBytes
  258.     RequestBin = Request.BinaryRead(bytecount)
  259. Dim UploadRequest
  260. Set UploadRequest = CreateObject("Scripting.Dictionary" )
  261.     'Appel de la fonction
  262. BuildUploadRequest RequestBin
  263. contentType = UploadRequest.Item("FileTO" ).Item("ContentType" )
  264. filepathname = UploadRequest.Item("FileTO" ).Item("FileName" )
  265. NomFichier = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\" ))
  266. value = UploadRequest.Item("FileTO" ).Item("Value" )
  267. ' NouveauFic représente le nom complet du chemin (chemin+nom)
  268.    NomFichierCourt = right(NomFichier, (Len(NomFichier) - Position))
  269.    if parent <> "" then
  270.  NouveauFic = Server.MapPath(parent) & "\" & Dossier & "\" & NomFichierCourt
  271.    else
  272. NouveauFic = Request.ServerVariables ("APPL_PHYSICAL_PATH" ) & Dossier & "\" & NomFichierCourt
  273.    End if
  274.  
  275. ' On ecrit le fichier sur le serveur
  276.    Set FileObject = Server.CreateObject("Scripting.FileSystemObject" )
  277.    Set Out=FileObject.CreateTextFile(NouveauFic, True)
  278.    For I = 1 to LenB(value)
  279.    Out.Write chr(AscB(MidB(value,I,1)))
  280.    Next
  281.    Out.close
  282.    Set Out=nothing
  283. end if ' fin du test
  284. %>
  285. <%
  286. 'ouverture du systeme de fichiers
  287. Set Systeme_fichier=Server.createObject("Scripting.FileSystemObject" )
  288. 'création de l'objet répertoire
  289. Set Repertoire = Systeme_fichier.GetFolder(server.MapPath(parent&encours&"/" ))
  290. if encours<>"" and encours<>"/" then
  291. j=0
  292. for i=len(encours) to 1 step -1
  293.  if mid(encours,i,1)<>"/" then
  294.   j=j+1
  295.  else
  296.   exit for
  297.  end if
  298. next
  299. papa=left(encours,len(encours)-j-1)
  300. else
  301. papa=""
  302. end if
  303. %>
  304. <%=msg%>
  305. <p align="center"><b>Fichiers de Transfert de L' INTRANET</b> <br>
  306. <hr>
  307. <table border="0" cellspacing="0" width="100%">
  308.   <tr>
  309.     <td width="25%" align="left"><p align="left"><strong><font face="Arial">Nom</font></strong></td>
  310.     <td width="15%" align="left" size="2"><strong><font face="Arial">Taille</font></strong></td>
  311.     <td width="25%" align="left" size="2"><strong><font face="Arial">Type</font></strong></td>
  312.     <td width="20%" align="left" size="2"><strong><font face="Arial">Date</font></strong></td>
  313.   </tr>
  314.   <font face="Arial" size="2"><% if encours<>"" then %>
  315.   <tr>
  316.     <td><a href="<%= action %>?rep=<%=papa%>"><img src="img/up.gif" border="0"
  317.     alt="dossier parent" WIDTH="20" HEIGHT="17"></a> </td>
  318.   </tr>
  319.   <tr>
  320.     <td><% end if %>
  321. <%
  322. ' pour chaque sous répertoire dans le répertoire parent
  323. for each Curseur In Repertoire.SubFolders %>
  324. </td>
  325.   </tr>
  326.   <tr>
  327.     <td><font face="Arial" size="2">&nbsp;<a
  328.     href="<%= action %>?rep=<%=encours%>/<%=Curseur.name%>"><img src="img/rep.gif"
  329.     onmouseover="this.src='img/repopen.gif'" onmouseout="this.src='img/rep.gif'"
  330.     align="absmiddle" width="22" height="18" border="0"></a>&nbsp;<a
  331.     href="<%= action %>?rep=<%=encours%>/<%=Curseur.name%>"><%=Curseur.name %></a></font> </td>
  332.     <td width="15%"></td>
  333.     <td><font face="Arial" size="2" color="gray">Dossier</font> </td>
  334.     <td width="20%"><font face="Arial" size="2" color="gray"><%=curseur.DateLastModified%></font> </td>
  335.     <td><font face="verdana" size="1"><a
  336.     href="javascript:modif_rep('<%=replace(curseur.name," ","+" )%>')">R</a></font></td>
  337.     <td><font face="verdana" size="1"><a
  338.     href="javascript:suppr_rep('<%=replace(curseur.name," ","+" )%>')">S</a></font></td>
  339.   </tr>
  340. <% next ' repertoire suivant
  341. %>
  342.   <tr>
  343.     <td colspan="4"><hr>
  344.     </td>
  345.   </tr>
  346. <% ' pour chaque fichier dans repertoire parent
  347. for each Curseur In Repertoire.Files %>
  348.   <tr>
  349.     <td nowrap="nowrap"><%i = i+1
  350. if i=1 then response.write("<font face=Arial size=2><u>Liste des fichiers :</u></font><br>" )%>
  351. </td>
  352.   </tr>
  353.   <tr>
  354.     <td>&nbsp;<%=i%> <a href="<%=parent%><%=encours%>/<%=curseur.name%>"><img
  355.     src="img/<%response.write(Right(Curseur.name,3)&".gif" )%>" align="absmiddle" border="0"></a>
  356.     <font face="arial" size="2">&nbsp;<a href="<%=parent%><%=encours%>/<%=curseur.name%>"><%=Curseur.name%></a>
  357.     </font></td>
  358.     <td width="15%" align="right"><font face="Arial" size="2" color="gray"><%=formatnumber(curseur.Size/1024,2)%>
  359.     Ko&nbsp;&nbsp;&nbsp;</font></td>
  360.     <td><font face="Arial" size="2" color="gray"><%=curseur.Type%></font> </td>
  361.     <td width="20%"><font face="Arial" size="2" color="gray"><%=curseur.DateLastModified%></font> </td>
  362.     <td><font face="verdana" size="1"><a
  363.     href="javascript:modif_file('<%=replace(curseur.name," ","+" )%>')">R</a></font></td>
  364.     <td><font face="verdana" size="1"><a
  365.     href="javascript:suppr_file('<%=replace(curseur.name," ","+" )%>')">S</a></font></td>
  366.   </tr>
  367. <% next %>
  368. </table>
  369. <dl>
  370.   <dd><br>
  371.     <br>
  372.      
  373. <form name="controle1" method="post" action="../Transfert/pages/transfert.asp">
  374.       <input type="submit"  name="test" value="Retour">
  375.     </form>
  376.     <p><br>
  377.     <br>
  378.     </font></p>
  379.   </dd>
  380.   <p align="center">Cliquez sur <b>R</b> pour renommer et sur <b>S</b> pour supprimer </p>
  381. </dl>
  382. </body>
  383. </html>
  384. <%
  385. End if
  386. ' Author Philippe Collignon
  387. ' Email PhCollignon@email.com
  388. Sub BuildUploadRequest(RequestBin)
  389. 'Get the boundary
  390. PosBeg = 1
  391. PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
  392. boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
  393. boundaryPos = InstrB(1,RequestBin,boundary)
  394. 'Get all data inside the boundaries
  395. Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--" )))
  396.  'Members variable of objects are put in a dictionary object
  397.  Dim UploadControl
  398.  Set UploadControl = CreateObject("Scripting.Dictionary" )
  399.  'Get an object name
  400.  Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition" ))
  401.  Pos = InstrB(Pos,RequestBin,getByteString("name=" ))
  402.  PosBeg = Pos+6
  403.  PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
  404.  Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
  405.  PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename=" ))
  406.  PosBound = InstrB(PosEnd,RequestBin,boundary)
  407.  'Test if object is of file type
  408.  If  PosFile<>0 AND (PosFile<PosBound) Then
  409.   'Get Filename, content-type and content of file
  410.   PosBeg = PosFile + 10
  411.   PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
  412.   FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
  413.   'Add filename to dictionary object
  414.   UploadControl.Add "FileName", FileName
  415.   Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:" ))
  416.   PosBeg = Pos+14
  417.   PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
  418.   'Add content-type to dictionary object
  419.   ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
  420.   UploadControl.Add "ContentType",ContentType
  421.   'Get content of object
  422.   PosBeg = PosEnd+4
  423.   PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
  424.   Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
  425.   Else
  426.   'Get content of object
  427.   Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
  428.   PosBeg = Pos+4
  429.   PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
  430.   Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
  431.  End If
  432.  'Add content to dictionary object
  433. UploadControl.Add "Value" , Value
  434.  'Add dictionary object to main dictionary
  435. UploadRequest.Add name, UploadControl
  436.  'Loop to next object
  437.  BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
  438. Loop
  439. End Sub
  440. 'String to byte string conversion
  441. Function getByteString(StringStr)
  442. For i = 1 to Len(StringStr)
  443.  char = Mid(StringStr,i,1)
  444. getByteString = getByteString & chrB(AscB(char))
  445. Next
  446. End Function
  447. 'Byte string to string conversion
  448. Function getString(StringBin)
  449. getString =""
  450. For intCount = 1 to LenB(StringBin)
  451. getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
  452. Next
  453. End Function
  454. %>


 
bon je sais c'est assez chiant, mais là, j'ai mis tout, ce qui a mon avis est important c'est le "dossier parent", en fait, je sais pas quoi mettre dans : Paren = **** pour qu'il trouve mon dossier d'upload si par exemple c'est i:/srvad/transfert

n°879778
alien_nan
Posté le 22-10-2004 à 10:07:37  profilanswer
 

Bilou33 a écrit :

Salut,
J'ai sensiblement le même problème qu'Oxoid.
 
...


 
Pour la partie config, voir mon premier post en haut de la page

n°879803
oxoid
Matos pas cher et bone qualité
Posté le 22-10-2004 à 10:45:38  profilanswer
 

et pour le dossier parent ? pour les programmateurs, ca doit être méga bidon ma question, c'est juste un chemin vers un dossier en gros, c'est juste, que moi je comprend pas trop le code, donc je sais pas trop ou le mettre ce chemin, pi la syntaxe quoi, svp !!
 
merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Probleme limite Upload

 

Sujets relatifs
Probleme avec session start...Probleme devenement sur un boutton
Probleme de id=$_GET[id]Probleme Access
Problème de variableprobleme d'arret chargement page lors evenement javascript
[CSS] Problème de positionnementProbleme de balise <br>
[opengl] [linux] probleme de libProblème avec les accents en mysql
Plus de sujets relatifs à : [ASP] Probleme limite Upload


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR