Just nu i M3-nätverket
Jump to content

Filhantering


darion

Recommended Posts

Hej,

 

Någon som vet ett bra knep om hur jag kan kan få upp frågan om att ladda ner en excel fil automatiskt när man går in på en sidan.

 

Det är frågan om Spara som eller Öppna som jag är ute efter.

 

Tack

 

Link to comment
Share on other sites

Hej!

 

Här kommer en funktion, som jag knåpat ihop tidigare:

 

return_file_class.asp (asp-klass)

<SCRIPT language="VBScript" runat="Server">

Class Return_File_Class

Public Function DownloadFile(ByVal strFileName, ByVal strDownloadFileName)
	DownloadFile = false

	Dim ads, fso, f, ft
	Dim lngFileSize

	With Response
		.Clear

		Set fso = Server.CreateObject("Scripting.FileSystemObject")
		If not fso.FileExists(strFileName) then
			Show_Error (Err)
		End if

		'On Error Resume Next

		Set f = fso.GetFile(strFileName)
		If Err then Show_Error(Err)
		lngFileSize = f.size
		Set f = Nothing
		Set fso = Nothing

		' Create stream
		Set ads = Server.CreateObject("ADODB.Stream")
		ads.Open
		ads.Type = 1
		ads.LoadFromFile(strFileName)
		If Err then Show_Error(Err)

		' Set headers for download
		If InStr(LCase(Request.ServerVariables("HTTP_USER_AGENT")),"msie 6") > 0 then
			.AddHeader "Content-Disposition", "attachment; filename=" & strDownloadFileName
		Else
			.AddHeader "Content-Disposition", "filename=" & strDownloadFileName
		End If
		.AddHeader "Content-Length", lngFileSize
		.Charset = "UTF-8"
		.ContentType = "application/octet-stream"

		' Write the stream to the response object
		.BinaryWrite ads.Read
		.Flush
	End With

	ads.Close
	Set ads = Nothing
	DownloadFile = true

End Function	

Private Sub Show_Error(objErr)
	Response.Write ("<h1>Fel: </h1><font color='#485e9e'>" & _
	Hex(objErr.Number) & ":" & objErr.Description & "</font><p>")
	If objErr.Number <> 0 then Response.End
	objErr.Clear

End Sub


End Class

</SCRIPT>

 

 

return_file_sample.asp (exempelfil)

<%@ Language=VBScript %>
<% Option Explicit %>
<!-- #include file="return_file_class.asp" -->
<%
Dim strFileName, strDownloadFileName
Dim ReturnFile
Set ReturnFile = New Return_File_Class
' Actual file to download
strFileName = Server.MapPath("testar.xls")
' What you want the attachement to named in save file dialog
strDownloadFilename = "imlikewhatever.xls"
ReturnFile.DownloadFile strFileName, strDownloadFileName

Set ReturnFile = Nothing

%>

 

Lägg en fil i samma katalog och kalla den "testar.xls" för att köra exemplet.

 

Mvh

 

Jimmy

 

PS! Observera att script-blocking måste stängas av i antivirusprogrammet om du kör det lokalt på din burk. DS.

 

 

[inlägget ändrat 2003-09-01 22:46:03 av dotgif]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...