Supprimer un fichier uploadé avec aspsmart upload

Supprimer un fichier uploadé avec aspsmart upload - ASP - Programmation

Marsh Posté le 22-12-2004 à 11:56:22    

Bonjour tout le monde. Je souhaite faire des upload de fichiers, jusque là tout marche bien mais le problème se pose lorsque je veux supprimer un fichier. en effet, la suppression ne marche pas mais aucune erreur ne s'affiche. Voici mon code:
 
<% Set FSO = Server.CreateObject("Scripting.FileSystemObject" )
set fc = FSO.GetFolder(server.MapPath(rep)).Files  
 
dir=Server.MapPath("/upload" )
if request.Form("asupprimer" ) <> "" then
   for each truc in request.Form("asupprimer" )
   FSO.deleteFile(dir & "\" & truc)
   next
end if
set foldPt=FSO.GetFolder(dir)
set fc=foldPt.Files
%>
nombre de fichiers:<%=fc.count%><br><br>
<table>
   <form method="post">
     
 
    <tr>  
    <th>Nom</th>
    <td align=right>Taille</td>
    <td>Cr&eacute;ation</td>
    <td>Derni&egrave;re modification</td>
    <td>Dernier acc&egrave;s</td>
    <td>Supprimer?</td>
    </tr>
    <tr>  
    <%for each f in fc %>
    <th> <a href="<%=rep&"/"&f.name%>" target="_blank"><%=f.name%></a> </th>
    <td align=right><%=f.size%></td>
    <td><%=f.dateCreated%></td>
    <td><%=f.dateLastModified%></td>
    <td><%=f.dateLastAccessed%></td>
    <td><input type="checkbox" name="asupprimer" value="<%=f.name%>">
    supprimer</td>
    </tr>
    <%next%>
    <tr>  
    <td> <input name="submit" type="submit" value="supprimer"> </td>
    </tr>
    </form>
  </table>
 
rep est défini plus haut dans mon code.
Je sais qu'il faut que mon dossier upload doit être accessible en écriture et lecture. Peut être le fais je mal, alors si vous pouviez m'aider aussi sur ce point.
 
Merci d'avance pour les éclaircissements

Reply

Marsh Posté le 22-12-2004 à 11:56:22   

Reply

Marsh Posté le 22-12-2004 à 21:57:29    

if request.Form("asupprimer" ) <> "" then  
   for each truc in request.Form("asupprimer" )  
   FSO.deleteFile(dir & "\" & truc)  
   next  
end if
 
=> Vérifie déjà que tu rentres bien dans ce truc, et que dir & "\" & truc est bien le fichier à supprimer
 
pour moi, cette partie est bien. sauf que je te suggère "trucasupprimer" comme nom de variable, c'est plus clair :o

Reply

Marsh Posté le 11-03-2005 à 15:50:11    

hello
 
j'ai le même problème : j'ai uploadé un fichier (avec aspsmartupload aussi), mais quand j'essaye de le supprimer, ca marche pas :
 

Code :
  1. cheminVersPDF = "../" & varPath & Request.QueryString("doc_nom_fichier" )
  2. set obj_FileSystem = CreateObject("Scripting.FileSystemObject" )
  3. If obj_FileSystem.FileExists(cheminVersPDF) Then
  4. Response.Write("<p>" & strSQLSupprPDF)
  5. obj_FileSystem.DeleteFile cheminVersPDF, True
  6. set obj_FileSystem = Nothing
  7. Response.Write("<p>Suppression effectu&eacute;e.</p>" )
  8. Else
  9. Response.Write("<p>Impossible de trouver le fichier.</p>" )
  10. Response.Write("<a href=""" & cheminVersPDF & """>Lancer le fichier a supprimer</a>" )
  11. End if


Et on notera que lorsque l'on lance le lien "lancer le fichier a supprimer" qui apparait alors, ca ne fait pas d'erreur 404, mais ca lance bien le fichier, donc le fichier existe bien.
De plus, j'ai bien les droits sur le rep... :/

Reply

Marsh Posté le 11-03-2005 à 19:17:22    

Ce serait bien si on avait vos message d'erreur... Parceque là, on sait pas si le fichier n'est pas trouvé, si la ressource est lockée, si c'est un problème de droit, si Tintin est à la plage... [:spamafote]

Reply

Marsh Posté le 11-03-2005 à 19:47:42    

Un truc assez utile si vous ne développez pas avec VS, utilisez les response.write pour vérifier que votre code passe bien à tel ou tel  endroit. C'est bourrin, mais efficace et pas cher ...

Reply

Marsh Posté le 14-03-2005 à 13:13:35    

Citation :

Erreur d'exécution Microsoft VBScript error '800a0035'
 
Fichier introuvable
 
/document_supprimer.asp, line 50


 
J'ai bien fait un if fileexists(fichier) mais ca prétend que le fichier n'existe pas... :/

Reply

Marsh Posté le 14-03-2005 à 14:51:30    

Comme Gfreeman, met des traces partout pour tester toutes tes variables et vérifier que tu passes bien aux bons endroits.
 
Sinon, je sais en effet qu'il y a des soucis de verrous et de cache en écriture avec certaines librairies d'upload. Il faut bien penser à détruire proprement ET MANUELLEMENT l'objet à chaque fin d'upload, sinon l'objet reste en mémoire pour une utilisation future, et pour peut qu'il gère un cache en écriture sur le disque, ou qu'il gère mal la fermeture des fichiers, et paf, t'as des problèmes de ce genre.

Reply

Marsh Posté le 14-03-2005 à 15:23:54    

ben il risque pas de ne pas passer au bon endroit, sachant qu'il n'y a aucun if, for ou while ou quoi que ce soit, ni devant ni derrière [:dawa]
 
 
Je détruis bien l'objet à la fin...
c'est bien ca ? :

Code :
  1. obj_FileSystem.Close
  2. Set obj_FileSystem = Nothing

Reply

Marsh Posté le 14-03-2005 à 15:40:45    

Nan, l'objet d'Upload, le "aspsmart upload" chais pas quoi.

Reply

Marsh Posté le 14-03-2005 à 16:05:59    

ah, oui :p
 
oui, il est bien fermé à la fin du fichier.

Reply

Sujets relatifs:

Leave a Replay

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