silverlight 文件下载若干方法
2011-03-04 15:32
183 查看
方法一:WebService
前台代码:
后台代码:
方法2:使用下载控件类似于asp.net中的<a href="url"></a>方法
前台代码:
后台类型转化器:
前台代码:
<DataTemplate> <Button Content="下载" Height="23" Name="button3" Tag="{Binding Udocname}" Width="60" Click="button3_Click" /> </DataTemplate>
后台代码:
private void button3_Click(object sender, RoutedEventArgs e) { Button b = sender as Button; //实例化button //_file 要下载的文件路径 //string _file = "http://localhost:8080/EHRWCF/upload/2.rar"; //这里改成你网站里的文件路径 string _file = "http://192.168.1.102:8080/EHRWCF/upload/" + b.Tag.ToString(); SaveFileDialog sf = new SaveFileDialog(); sf.DefaultExt = "rar"; sf.Filter = "rar压缩文件 (*.rar)|*.rar|zip压缩文件 (*.zip)|*.zip|所有文件 (*.*)|*.*"; sf.FilterIndex = 1; if (sf.ShowDialog() != true) return; Stream clientStream = sf.OpenFile(); Uri _uri = new Uri(_file, UriKind.Absolute); WebClient client = new WebClient(); if (client.IsBusy) { client.CancelAsync(); } client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); client.OpenReadAsync(_uri, clientStream); } #region 异步文件下载 void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { if (e.Error != null) { //txtinfo.Text += e.Error.Message; MessageBox.Show(e.Error.ToString()); //MessageBox.Show("下载文件时出错,可能是文件已经不存在!"); return; } if (e.Cancelled != true) { Stream clientStream = e.UserState as Stream; Stream serverStream = (Stream)e.Result; byte[] buffer = new byte[serverStream.Length]; serverStream.Read(buffer, 0, buffer.Length); clientStream.Write(buffer, 0, buffer.Length); clientStream.Close(); serverStream.Close(); } } #endregion
方法2:使用下载控件类似于asp.net中的<a href="url"></a>方法
前台代码:
//引用命名空间 xmlns:localConv="clr-namespace:KX_EHR.Class" <UserControl.Resources> <localConv:ConvtoAddStr x:Key="ConvtoAddString"/> </UserControl.Resources> //datagrid中 <DataTemplate> <HyperlinkButton Content="下载" NavigateUri="{Binding Udocname,Converter={StaticResource ConvtoAddString}}"></HyperlinkButton> </DataTemplate>
后台类型转化器:
/// <summary> /// 把代码转化成指定的类容 /// </summary> /// <param name="value"></param> /// <param name="targetType"></param> /// <param name="parameter"></param> /// <param name="culture"></param> /// <returns></returns> public class ConvtoAddStr : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (!value.ToString().Contains(@"http://192.168.1.102:8080/EHRWCF/upload/")) { return @"http://192.168.1.102:8080/EHRWCF/upload/" + value; } else return value; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value.ToString().Contains(@"http://192.168.1.102:8080/EHRWCF/upload/")) { return value.ToString().Replace(@"http://192.168.1.102:8080/EHRWCF/upload/", ""); } else return value; } }
相关文章推荐
- .net下载文件的若干方法【转】
- silverlight文件下载方法
- 下载flash文件的若干方法!
- Silverlight文件上传下载实现方法(下载保存)
- 解决IE apk变成zip:Android 手机应用程序文件下载服务器 配置解决方法
- python 下载.whl 文件,查看已安装软件包方法
- ASP.NET中文件上传下载方法集合
- ASP.Net中的几种文件下载方法
- 从服务器下载文件的方法
- 数据导出到excel文件给客户端下载的几种方法
- ASP.NET中文件上传下载方法集合[转]
- datagrid数据导出到excel文件给客户端下载的几种方法
- 【总结】服务器端文件下载的方法
- (转)Rational Rose 2007 &Rational Rose 2003 下载及破解方法和汉化文件下载
- 访问JSP文件或者Servlet文件时提示下载的解决方法
- 使用FileZilla从Linux系统下载文件的方法
- C#文件上传与下载的实现方法
- 实现各种文件的下载方法:用于 WEB上的报表导出(jxl 实现Excel报表下载),核心思想就是将文件的输出流传给HttpResponseOutputStream 里就成了。
- 从URL下载文件的方法