Pb D'ouverture de tous types de fichiers

cs_shamanette Messages postés 11 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 19 juin 2006 - 15 nov. 2005 à 15:14
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 - 16 nov. 2005 à 21:40
Bonjour à tous,



Voilà mon problème, j'ai chopé plusieurs scripts asp pour ouvrir /ou
enregistrer un fichier à partir de mon application (qui est en fait un
intranet). Ceux ci fonctionnent très bien avec du pdf, et dès que le
format change (gif, jpeg, doc, xls....) Je n'arrive pas à le faire
fonctionner, il me dis que le fichier n'existe pas alors qu'il existe
bien!!!!.



Cela fait plusieurs jours que je m'arrache les cheveux et que je ne
trouve pas les bons arguments pour l'entête http que ce soit pour gérer
chaque extension différente ou peut-être une qui gère tout...?



Si quelqu'un pouvait m'aider, m'éclaircir je lui serait énormément reconnaissante.



Merci d'avance,

Shamanette



Code:

<%



Function getBinaryFile(strFilePath)

Dim TypeBinary, oStream

TypeBinary = 1 ' Indicates a binary file

' Create the object

Set oStream = Server.CreateObject("ADODB.Stream")

' Open our file

oStream.Open

' Retreive binary data from the file

oStream.Type = TypeBinary

oStream.LoadFromFile strFilePath

' Return the binary data to the caller

getBinaryFile = oStream.read

' Destroy the ADO object

Set oStream = Nothing

End Function



response.clear()



Set FSO = Server.CreateObject("Scripting.FileSystemObject")



chemin = request("fichier")



if FSO.FileExists(chemin) Then

Response.Addheader "Content-Disposition", "inline; filename=" & "ado.pdf"

Response.ContentType ="application/pdf"

response.flush()

response.BinaryWrite getBinaryFile(chemin)

else

response.write "Fichier non disponible"

end if





.

5 réponses

cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
15 nov. 2005 à 18:54
Salut,



Le code a l'air bon, cependant...

à la place de :

chemin = request("fichier")

essaye :

chemin = Server.MapPath(request("fichier"))


car ton request("fichier") contient sans doute un truc du genre
"/dossier/fichier.pdf", alors que le FSO a besoin d'un "physical path"
du genre "C:\dossier\fichier.pdf". C'est ce que fais le
Server.MapPath().



A+++

Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0
cs_shamanette Messages postés 11 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 19 juin 2006
16 nov. 2005 à 09:51
Bonjour,



Merci pour ta réponse.



Le problème est justement que dans fichier je récupère tout le path de
mon document car le chemin complet est stocké dans une base de données
à l'enregistrement . D'ailleurs quand il s'agit d'un document pdf il
n'y a aucun problème..



Si tu veux je sais qu'il me faut une entête http qui gère les autres
format que le pdf mais je ne trouve nulle part (ni dans les manuels, ni
sur le net)....



Il doit y avoir quelque chose à mettre à la place de ca:

Response.Addheader "Content-Disposition", "inline; filename=" & "ado.pdf"

Response.ContentType ="application/pdf"



Merci encore pour vos idées..



Shamanette
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
16 nov. 2005 à 14:09
Il y a deux possibilité :



Soit tu veux que l'utilisateur puisse lire le pdf en ligne (et/ou le
télécharger ensuite), dans ce cas ce sera tout simplement ça :

Response.ContentType = "application/pdf"



Soit tu veux que l'utilisateur télécharge directement le fichier, et dans ce cas tu mets :

Response.ContentType = "application/octet-stream"

Response.Addheader "Content-Disposition", "attachment; filename=ado.pdf"



A++

Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0
Bon, je crois que c'est la méthode que je vais employer.



Merci en tout cas pour ta rapidité.



Et de toutes façons, ma responsable m'a signalée que les
documents qui seront posés sur l'intranet sont des pdf apparement.



Ciao

Shamanette
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
16 nov. 2005 à 21:40
Simple curiosité : Quelle méthode ? (la 1ère ou la 2ème...)


(Si le problème est résolu : "Réponse Acceptée" )



A++ et bon coding !

Nurgle
0
Rejoignez-nous