Maison  >  Article  >  base de données  >  SilverLight下载任意文件技巧

SilverLight下载任意文件技巧

WBOY
WBOYoriginal
2016-06-07 14:59:431104parcourir

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn