OVH Cloud OVH Cloud

download gros fichier exterieur à l'application

2 réponses
Avatar
Christophe HELFER
Bonjour,

je voudrai downloader de gros fichiers, mais qui ne se trouvent pas dans une
sous-arborescence du site (par ex: d:\Fichiers\).
J'ai utilisé l'objet ADODB.Stream pour lire le flux du fichier et le
renvoyer au navigateur. Le seul problème est que lorsque le fichier est
gros (ce qui est mon cas) cette facon de procéder fait énormément ralentir
le serveur, voir même planter car la méthode LoadFromFile de l'objet Stream
lit tout le fichier et effectue tout le traitement avant l'envoi vers le
navigateur client. Je constate également une consommation massive de la
mémoire (environ 4x la taille du fichier original, pour un fichier de 100Mo
imaginez...). De plus le client n'obtient pas la boite lui demandant
d'ouvrir ou de sauvegarder le fichier avant que l'opération complète ne soit
fini. C'est une situation un peu agassante.

Quelqu'un aurait-il une idée ?


Merci

2 réponses

Avatar
Ledev
"Christophe HELFER" a écrit dans le
message de news: #$
Bonjour,



Bonjour,

je voudrai downloader de gros fichiers, mais qui ne se trouvent pas dans


une
sous-arborescence du site (par ex: d:Fichiers).
J'ai utilisé l'objet ADODB.Stream pour lire le flux du fichier et le
renvoyer au navigateur. Le seul problème est que lorsque le fichier est
gros (ce qui est mon cas) cette facon de procéder fait énormément


ralentir
le serveur, voir même planter car la méthode LoadFromFile de l'objet


Stream
lit tout le fichier et effectue tout le traitement avant l'envoi vers le
navigateur client. Je constate également une consommation massive de la
mémoire (environ 4x la taille du fichier original, pour un fichier de


100Mo
imaginez...). De plus le client n'obtient pas la boite lui demandant
d'ouvrir ou de sauvegarder le fichier avant que l'opération complète ne


soit
fini. C'est une situation un peu agassante.

Quelqu'un aurait-il une idée ?



Crée un repertoire virtuel, nommé par exemple download, qui pointe vers
d:Fichiers?
Avatar
Christophe HELFER
Je voulais justement éviter de créer un répertoire virtuel, ce répertoire
externe change souvent et faire la manip a la main...

J'ai mis le répertoire externe dans une variable d'application et avec cette
variable je voudrais concaténer une URL de download (du style
file://d:/fichiers/fichier.bmp) . Mais comme dit dans le message précédent,
si le fichier n'est pas dans l'arborescence web, cela ne fonctionne pas. Le
browser client recherche un fichier sur son disque.


"Ledev" a écrit dans le message de
news:%235Y%

"Christophe HELFER" a écrit dans le
message de news: #$
> Bonjour,

Bonjour,

> je voudrai downloader de gros fichiers, mais qui ne se trouvent pas dans
une
> sous-arborescence du site (par ex: d:Fichiers).
> J'ai utilisé l'objet ADODB.Stream pour lire le flux du fichier et le
> renvoyer au navigateur. Le seul problème est que lorsque le fichier est
> gros (ce qui est mon cas) cette facon de procéder fait énormément
ralentir
> le serveur, voir même planter car la méthode LoadFromFile de l'objet
Stream
> lit tout le fichier et effectue tout le traitement avant l'envoi vers le
> navigateur client. Je constate également une consommation massive de la
> mémoire (environ 4x la taille du fichier original, pour un fichier de
100Mo
> imaginez...). De plus le client n'obtient pas la boite lui demandant
> d'ouvrir ou de sauvegarder le fichier avant que l'opération complète ne
soit
> fini. C'est une situation un peu agassante.
>
> Quelqu'un aurait-il une idée ?

Crée un repertoire virtuel, nommé par exemple download, qui pointe vers
d:Fichiers?