2010-10-13 14 views
1

J'ai une webapp qui génère dynamiquement un fichier et le stocke sur le serveur. Quand un utilisateur arrive, ce fichier est servi, après quoi il est supprimé. Chaque utilisateur obtient son propre fichier généré après quoi il devient inutile.Pour en savoir est utilisateur complètement terminé télécharger ou non

Y at-il un moyen de savoir si l'utilisateur a réussi à télécharger le fichier entièrement, afin qu'il puisse être supprimé et ne pas obstruer mon serveur avec des fichiers obsolètes?

Pour le moment le problème est que l'utilisateur clique sur "Télécharger le fichier" alors qu'il est annulé ou a échoué, alors ils essaient à nouveau mais il a été supprimé.

Répondre

1

Il n'y a aucun moyen de savoir avec certitude si le fichier a été téléchargé complètement - même si vous avez compté les octets téléchargés par le navigateur, et si leur navigateur en avait téléchargé tous les octets, par exemple?

Une solution courante à ce problème consiste à laisser le fichier là pendant une période prédéterminée, puis à le supprimer. Vous dites à l'utilisateur "Votre téléchargement sera disponible pour les prochaines 48 heures".

(L'exemple exact ci-dessus m'est arrivé avec le MP3 Store d'Amazon.) Je devais contacter le service clients pour qu'ils réactivent le téléchargement, ce qui à leur crédit, ils l'ont fait très rapidement. est cher.)

+0

Oui, je pensais autant, je suis sûr que j'ai déjà examiné ce problème. Peut-être que je pourrais supprimer le fichier sur un autre événement, comme l'utilisateur va générer un autre fichier (c'est-à-dire il écrase l'ancien) –

0

Demandez à l'utilisateur de cliquer sur un bouton "Continuer" après avoir téléchargé le fichier, et supprimer le fichier à ce stade.

+0

et si elles ne "continuent" pas mais faire ce que la plupart le ferait et appuyez sur le bouton fermez la fenêtre ou naviguez vers un autre site? –

+0

A ce stade, revenez à une expiration temporisée comme suggéré par RichieHindle. – Yuliy