Impossible de copier un fichier avec FileSystemObject

Impossible de copier un fichier avec FileSystemObject - ASP - Programmation

Marsh Posté le 22-02-2011 à 12:47:50    

Salut à tous,
 
J'ai un petit problème de copie de fichier avec FileSystemObject en ASP.  
 
Je voulais construire une arborescence à partir d'une base Access en créant des dossiers avec comme nom les ID des fiches.
Dans cette base, j'ai un champ "photo" qui contient le chemin des fichiers que je veux copier dans cette nouvelle arborescence.
 
Voici mon code
 

Code :
  1. <%
  2. dbPath="mabase.mdb"
  3. Set Conn=Server.CreateObject("ADODB.Connection" )
  4. Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" _
  5. & " DBQ=" & dbPath
  6. Set rsMat = Conn.Execute("SELECT * FROM MATERIEL" )
  7. Set net = CreateObject("Scripting.FileSystemObject" )
  8. rsMAt.MoveFirst
  9. do while not rsMat.eof
  10. net.CreateFolder("\\nom_du_pc\MATERIEL\"&rsMAt("idMat" ))
  11. net.CopyFile rsMAt("photo" ),"\\nom_du_pc\MATERIEL\"&rsMAt("idMat" )
  12. rsMat.MoveNext
  13. loop
  14. Conn.close
  15. Set Conn=nothing%>


 
La création du dossier fonctionne, mais la copie de la photo foire et j'obtient un beau:
 
Microsoft VBScript runtime error '800a0046'  
 
Permission denied  
 
Pourtant j'ai configuré les permissions du dossier cible en écriture pour le user par défaut du serveur IIS, mais ça ne fonctionne pas.
 
Donc si vous avez des pistes je suis preneur.
 
Merci d'avance.

Reply

Marsh Posté le 22-02-2011 à 12:47:50   

Reply

Marsh Posté le 22-02-2011 à 13:33:35    

J'ai réussi à faire ce que je voulais, mais en utilisant une alternative:
 
J'ai utilisé l'objet GflAx pour enregistrer les photos (j'en ai profité pour les renommer au passage). Et ça a marché.
 
Je ne comprend cependant toujours pas pourquoi avec CopyFile de FSO je n'ai pas la permission.
 

Code :
  1. ...
  2. set ctrl = Server.CreateObject("GflAx.GflAx" )
  3. rsMAt.MoveFirst
  4. do while not rsMat.eof
  5. net.CreateFolder("\\nom_du_pc\MATERIEL\"&rsMAt("idMat" ))
  6. new_path = "\\nom_du_pc\MATERIEL\"&rsMAt("idMat" )&"\"& year(now) & month(now) & day(now) & hour(now) & minute(now) & second(now) & "_" & rsMAt("idMat" ) & ".jpg"
  7. With ctrl
  8. .LoadBitmap rsMAt("photo" )
  9. .SaveBitmap new_path
  10. End With
  11. rsMat.MoveNext
  12. loop
  13. ...


 
Cordialement

Reply

Marsh Posté le 06-03-2011 à 08:58:59    

salut
 
je pense que le "user web" n'a pas les droits d'écrire dans le dossier où tu stockes les photos... tout simplement.

Reply

Marsh Posté le 31-07-2012 à 09:46:56    

Je déterre un peu ce topic mais en fait je me retrouve devant la même problème et j'aimerais bien le résoudre.
 
En résumé je n'arrive pas à utiliser FileSystemObject, depuis un intranet en ASP, pour copier/déplacer un fichier sur un dossier partagé du serveur.
 
J'ai essayé de mettre les droits sur les répertoires pour l'utilisateur IUSR_serveurWeb mais ça ne fonctionne pas, et de plus à la base tous les utilisateurs du domaine ont les droits d'écriture sur les dossiers.
 
J'obtiens l'erreur :
 
Permission denied.
 
Merci de votre aide.

Reply

Marsh Posté le 06-08-2012 à 15:53:24    

Petit up car j'ai trouvé le problème sans pouvoir le solutionner:
 
En fait ça vient uniquement lorsqu'on veut déplacer ou supprimer le fichier. Ceci, car dans ma page précédente j'ai un aperçu du fichier PDF (avec la balise <object> ) le fichier est donc ouvert en lecture seule et ne peux pas être supprimé/déplacer.  
Mais je ne comprend pas pourquoi il reste en lecture seule puisque je change de page.
De plus, si j'actualise, le script fonctionne la deuxième fois.

Reply

Sujets relatifs:

Leave a Replay

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