2011-10-20 5 views
0

J'ai une page dans mon site qui crée un fichier .doc et permet à l'utilisateur de le télécharger. Je veux être en mesure de supprimer ce fichier du serveur après que l'utilisateur l'ait téléchargé.Fichier Télécharger le rappel

Y at-il un moyen de dire au navigateur d'appeler une fonction de rappel JavaScript que j'ai écrit (afin que je puisse utiliser ajax et supprimer le fichier), ou de toute autre manière pour savoir quand supprimer le fichier?

+0

Il n'y a aucun moyen de le faire de manière fiable, AFAIK. Votre meilleur pari est de nettoyer les fichiers temporaires régulièrement sur le serveur. –

+0

Vous pouvez le faire sur le serveur aussi juste après le téléchargement, après le code de transmission du fichier. – Birey

+0

@Bipins comment puis-je savoir quand le téléchargement est terminé? –

Répondre

1

Non, il n'y en a pas. Vous pouvez passer le fichier via un script côté serveur (PHP, Rails, etc), qui le supprime par la suite ou, si votre serveur web tourne sous linux ou un autre unix, il suffit de le supprimer après le démarrage du téléchargement. Sur ces plates-formes, le fichier est supprimé pour de vrai après la fermeture du dernier processus, donc même si vous supprimez le fichier alors que l'utilisateur le télécharge, l'utilisateur peut continuer à le faire. Une fois que vous avez diffusé votre fichier depuis le serveur, vous pouvez le supprimer.

+0

Malheureusement, mon serveur utilise Windows, une belle solution Linux cependant. –

1

Qu'est-ce que vous utilisez sur le côté serveur. Par exemple dans aspx, http://forums.asp.net/p/1204802/2109808.aspx

private void fileDownload(string fileName, string fileUrl) 
    { 
     Page.Response.Clear(); 
     bool success = ResponseFile(Page.Request, Page.Response, fileName, fileUrl, 1024000); 
     if (!success) 
      Response.Write("Downloading Error!"); 
     else 
     // you can delete here 
     Page.Response.End(); 
    }