Je crois que tout le monde a cette expérience: il y a un lien sur la page pointant vers un fichier Word sur le serveur. Lorsque la machine client a installé Office, cliquer sur le lien appellera le mot pour ouvrir et parcourir; Lorsque la machine client n'a pas installé Office, cliquer sur le lien apparaîtra la boîte de dialogue Enregistrer. Pour résumer, si le navigateur connaît le type de fichier, il s'ouvrira automatiquement; S'il ne le sait pas, le client sera invité à enregistrer. Mais parfois, nous espérons que peu importe le type de fichier, nous ne l'ouvrirons pas et laisserons le client l'enregistrer directement. Pour répondre à cette exigence, les fichiers enregistrés sur le disque dur du serveur doivent être implémentés à l'aide de la méthode SendBinary du composant Aspupload. Pour les fichiers stockés dans la base de données, vous n'avez qu'à ouvrir l'enregistrement et à sortir les données binaires directement au client. Cependant, vous devez indiquer le type MIME du fichier du navigateur, le nom de fichier et la taille du fichier.
1. Fichiers sur le disque dur côté serveur
La copie de code est la suivante:
<%
Dimipload, filepath
SetUpload = server.createObject ("persits.upload")
Filepath = server.mappath (".") & "/" & "2003529213019.txt"
'Sendbinary Paramètre Description:
'Paramètre 1: Chemin physique de fichier
'Paramètre 2: s'il faut transférer des informations telles que le type MIME du fichier au navigateur
'Paramètre 3: Type de fichier, vous pouvez spécifier le type MIME spécifique, mais généralement vous pouvez utiliser l'application / octet-binaire
'Paramètre 4: laissez le client enregistrer le fichier ou l'ouvrir directement. Vrai: sauvegarder; False (par défaut): ouvrir
Upload.sendbinaryFilePath, vrai, "application / octet-binaire", vrai
%>
2. Fichiers dans la base de données côté serveur
La copie de code est la suivante:
<%
Dimobjconn, objrs
SetObjConn = server.createObject ("adodb.connection")
SetObjrs = server.createObject ("adodb.recordSet")
objConn.open "Driver = {Microsoft AccessDriver (*. MDB)}; dbq =" & server.mappath ("db1.mdb")
objrs.open "select * fromt5whered = 2", objconn, 1,3
Response.ContentType = "Application / Octet-Stream"
Response.Addheader "Content-Disposition", "attachment; filename =" & objrs ("filename")
Response.Addheader "Content-Length", CSTR (objrs ("taille")) 'Ici, vous devez convertir avec CSTR
Réponse.binarywriteObjrs ("fichier")
objrs.close
SetObjrs = rien
objconn.close
SetObjConn = rien
%>
Cette méthode nécessite que le nom de fichier et la taille du fichier soient enregistrés en même temps lors de l'enregistrement du fichier! Si le nom et la taille du fichier ne sont pas spécifiés, si le navigateur connaît le type de fichier, il sera ouvert automatiquement; S'il ne sait pas, le client sera invité à sauver!