silverlight 文件下载若干方法

方法一:WebService

2011030416133617.png

前台代码:

 
  
< 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>方法

2011030416171081.png

前台代码:

 
  
//引用命名空间
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;
}
}
 

转载于:https://www.cnblogs.com/infim/archive/2011/03/04/1970962.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
情况一及解决方法:   在升级silverlight 或者卸载的时候 提示找不到某个某个临时目录下的原始安装文件 从而无法卸载或升级新版本 微软公司真是没有考虑周全 谁会保存原始的临时文件目录 通常在某个temp目录中 中的原始安装包文件呢   这种错误会令人抓狂 不过 还是有解决方法的:   打开注册表工具regedit 在“开始 >运行”中执行命令regedit 找到路径 My Computer >   HKEY CLASSES ROOT > INSATLLER > PRODUCTS > {D7314F9862C648A4DB8BE2A5B47BE100} 然后删除它(注意 在删除注册表键值之前 请右键点击要删除的键值 通过导出功能来做备份 一旦删除之后发生问题 可以通过双击之前导出的注册表文件进行恢复) 退出注册表工具   再试试安装silverlight或升级 是否成功了 反正我是成功了 祝你也好运   情况二及解决方法:   如果在使用windows update更新时 发现某个更新总是安装失败 并且错误代码是643 那么通常都是由于该更新所对应的组件损坏 导致该更新无法安装成功 要解决这个问题 通常都需要将该组件卸载之后重新安装来进行修复 如果无法安装的更新是Microsoft Silverlight的更新 首先需要做好准备的是下载独立的Microsoft Silverlight安装包   方法一:下载Windows Installer clean up工具并安装 在开始菜单中打开它并找到与silverlight相关的项目 将其删除 完成后重新启动计算机 再次安装Microsoft Silverlight并尝试更新 ">情况一及解决方法:   在升级silverlight 或者卸载的时候 提示找不到某个某个临时目录下的原始安装文件 从而无法卸载或升级新版本 微软公司真是没有考虑周全 谁会保存原始的临时文件目录 通常在某个temp目录中 中 [更多]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值