Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/09/2007, 11h17   #1
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Par défaut Problème de téléchargement

Bonjour,

Dans une appli intranet, je propose en téléchargement le contenu de certaines tables avec le code suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
    Dim i
    Dim sLine
	Const DEF_EXPORT_SEP       = ";"
	Const DEF_EXPORT_VAL       = """"
 
    ' Initialisation de l'entête HTTP
    Response.Buffer = TRUE
    Response.Clear
 
		Response.ContentType = "application/msexel"
		Response.addHeader "content-disposition","attachment;filename=Donnees.xls"
 
	set m_RS = Server.CreateObject("ADODB.Recordset")
	m_RS.open txtSQL, Application("DsnODBC")
    m_RS.MoveFirst
 
    ' Entête
    sLine = ""
    for i = 0 to m_RS.Fields.count - 1
        sLine = sLine & DEF_EXPORT_VAL & m_RS.Fields(i).Name & DEF_EXPORT_VAL & DEF_EXPORT_SEP
    next
    if sLine <> "" then
        sLine = Left(sLine, Len(sLine)-1)
        Response.Write sLine & vbCrLf
    end if
 
    ' Données
    Do while not m_RS.EOF
        sLine = ""
	    for i = 0 to m_RS.Fields.count - 1
			Valeur = Replace(m_RS.Fields(i).Value, vbcrlf, " ")
			Valeur = Replace(m_RS.Fields(i).Value, "'", "''")
            sLine = sLine & DEF_EXPORT_VAL & Valeur & DEF_EXPORT_VAL & DEF_EXPORT_SEP
        next
        if sLine <> "" then
            sLine = Left(sLine, Len(sLine)-1)
            Response.Write sLine & vbCrLf
        end if
        m_RS.MoveNext
    Loop
	m_RS.Close
	set m_RS = Nothing
    Response.End
Pour certaines tables (qui n'ont rien de particulier), j'obtiens ce message d'erreur :

Citation:
Internet Explorer ne peut télécharger....
Selon le site de Microsoft, la cause est :
Citation:
Cause
Ce problème se produit car l'en-tête de disposition de contenu (content-disposition) pour le flux de fichier est supérieur à 150 octets environ et le jeu de caractères latin est de 150 caractères. Il peut se produire si l'en-tête de disposition de contenu est mis en forme avec un jeu de caractères autre que le latin, comme le japonais ou le russe.
Ce problème est-il contournable SVP ?

Merci
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 20h35   #2
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 973
Points : 5 973
Salut pc75,

Quelle version de navigateur?
Y a-t-il bcp ou pas bcp de données?
Y'a pas un "C" à Excel?
Où est constitué les fichier "donnee.xls"?
A ta place, je ne ferais aucun "response.write". Le fait d'ajouter du texte peux perturber le téléchargement.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 08h42   #3
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Salut et merci pour la réponse

Citation:
Envoyé par Immobilis Voir le message
Salut pc75,

Quelle version de navigateur?
Y a-t-il bcp ou pas bcp de données?
Y'a pas un "C" à Excel?
Où est constitué les fichier "donnee.xls"?
A ta place, je ne ferais aucun "response.write". Le fait d'ajouter du texte peux perturber le téléchargement.

A+
- Navigateur => IE6

- Volume => Dans la boucle où je gère les données, même si j'utilise un compteur pour n'afficher que le premier enregistrement => Erreur

- Response.ContentType = "application/msexel" => fonctionne nickel avec la majorité des tables

- donnees.xls => il est constitué à partir de l'objet response ( Response.addHeader "content-disposition","attachment;filename=Donnees.xls")

As-tu essayé le bout de code que j'ai envoyé ?
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 21h38   #4
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 973
Points : 5 973
Malheureusement, j'ai pas pu tester.
J'ai changé de boulot et j'ai plus de PC potable pour développer à la maison... Snif...
J'utilise un script qui marche plutôt bien pour le téléchargement: ici.
Il y a qqs différences. Je me demande si "Response.Flush" plustôt que "Response.End". Encore que ni l'un ni l'autre ne soit rééllement nécessaire, non?
Sinon "Donnees.xls" correspond-il à un fichier réél?

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2007, 08h17   #5
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Re,

Merci de ta réponse, mais j'ai trouvé la cause de l'erreur.

Le méthode que j'utilise n'accepte pas les valeurs nulles. J'ai ajouté dans la clause WHERE => AND LeChamp Is Not Null et ça passe.

Merci Bill pour les messages d'erreur explicites !
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 09h37   #6
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 242
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 242
Points : 1 049
Points : 1 049
Par défaut Envoyer des enregistrements vers un fichier xls

Salut PC75, Salut Immobilis,

Bonne et heureuse année 2008.

beegees
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 21h55   #7
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 973
Points : 5 973
Toi aussi
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h08.


 
 
 
 
Partenaires

Hébergement Web