>  기사  >  데이터 베이스  >  SilverLight下载任意文件技巧

SilverLight下载任意文件技巧

WBOY
WBOY원래의
2016-06-07 14:59:431104검색

xaml采用LinkButton 其NavigateUri属性链接到服务端下载的ashx文档 如 HyperlinkButton Margin="32,135,198,140" Content="HyperlinkButton" NavigateUri="http://localhost:1399/download.ashx" / download.ashx 如下 Code 1 Imports System.Web 2 Imports

xaml采用LinkButton 其NavigateUri属性链接到服务端下载的ashx文档

 

download.ashx如下

 

SilverLight下载任意文件技巧SilverLight下载任意文件技巧Code
 1SilverLight下载任意文件技巧Imports System.Web
 2SilverLight下载任意文件技巧Imports System.Web.Services
 3SilverLight下载任意文件技巧Imports System.Net
 4SilverLight下载任意文件技巧SilverLight下载任意文件技巧Public Class downloadClass download
 5SilverLight下载任意文件技巧    Implements System.Web.IHttpHandler
 6SilverLight下载任意文件技巧
 7SilverLight下载任意文件技巧    Private ChunkSize As Long = 102400 '100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
 8SilverLight下载任意文件技巧
 9SilverLight下载任意文件技巧SilverLight下载任意文件技巧    Sub ProcessRequest()Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
10SilverLight下载任意文件技巧        Dim fileName As String = "aaa.JPG" '客户端保存的文件名
11SilverLight下载任意文件技巧        Dim filePath As String = context.Server.MapPath("image/IMG_1370.JPG"'路径
12SilverLight下载任意文件技巧
13SilverLight下载任意文件技巧        Dim fileInfo As System.IO.FileInfo = New System.IO.FileInfo(filePath)
14SilverLight下载任意文件技巧
15SilverLight下载任意文件技巧        If fileInfo.Exists = True Then
16SilverLight下载任意文件技巧
17SilverLight下载任意文件技巧            Dim buffer(ChunkSize) As Byte
18SilverLight下载任意文件技巧
19SilverLight下载任意文件技巧            context.Response.Clear()
20SilverLight下载任意文件技巧            Dim iStream As System.IO.FileStream = System.IO.File.OpenRead(filePath)
21SilverLight下载任意文件技巧            Dim dataLengthToRead As Long = iStream.Length '获取下载的文件总大小
22SilverLight下载任意文件技巧
23SilverLight下载任意文件技巧            context.Response.ContentType = "application/octet-stream"
24SilverLight下载任意文件技巧            '通知浏览器下载文件而不是打开
25SilverLight下载任意文件技巧            context.Response.AddHeader("Content-Disposition""attachment;  filename=" & _
26SilverLight下载任意文件技巧                               HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8))
27SilverLight下载任意文件技巧Loop1:
28SilverLight下载任意文件技巧            While dataLengthToRead > 0 And context.Response.IsClientConnected
29SilverLight下载任意文件技巧                Dim lengthRead As Integer = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize)) '读取的大小
30SilverLight下载任意文件技巧                context.Response.OutputStream.Write(buffer, 0, lengthRead)
31SilverLight下载任意文件技巧                context.Response.Flush()
32SilverLight下载任意文件技巧                dataLengthToRead = dataLengthToRead - lengthRead
33SilverLight下载任意文件技巧            End While
34SilverLight下载任意文件技巧  
35SilverLight下载任意文件技巧            context.Response.Close()
36SilverLight下载任意文件技巧            context.Response.End()
37SilverLight下载任意文件技巧        End If
38SilverLight下载任意文件技巧
39SilverLight下载任意文件技巧        'context.Response.ContentType = "text/plain"
40SilverLight下载任意文件技巧        'context.Response.Write("Hello World!")
41SilverLight下载任意文件技巧
42SilverLight下载任意文件技巧    End Sub

43SilverLight下载任意文件技巧
44SilverLight下载任意文件技巧SilverLight下载任意文件技巧    ReadOnly Property IsReusable()Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
45SilverLight下载任意文件技巧        Get
46SilverLight下载任意文件技巧            Return False
47SilverLight下载任意文件技巧        End Get
48SilverLight下载任意文件技巧    End Property

49SilverLight下载任意文件技巧
50SilverLight下载任意文件技巧End Class

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.