silverlight不支持本地文件创建等相关操作,上传文件时可以先把文件读入字节数组,然后调用web服务实现上传。
具体实现如下:
silverlight端代码:
private void button1_Click(object sender,RoutedEventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); if (dialog.ShowDialog().Value) { // 选择上传的文件 FileInfo file = dialog.File; Stream stream = file.OpenRead(); stream.Position = 0; byte[] buffer = new byte[stream.Length + 1]; //将文件读入字节数组 stream.Read(buffer,buffer.Length); String fileExtention = file.Extension; //调用服务上传 ServiceReference1.UploadFileSoapClient upfile = new UploadFileSoapClient(); upfile.UploadfileAsync(buffer,fileExtention); upfile.UploadfileCompleted += new EventHandler<UploadfileCompletedEventArgs>(upfile_UploadfileCompleted); } else { MessageBox.Show("请选择文件!"); } } void upfile_UploadfileCompleted(object sender,UploadfileCompletedEventArgs e) { MessageBox.Show("上传成功!"); }
webservice代码:
[WebMethod] public int Uploadfile(byte[] FileByte,string FileExtention) { //文件存放路径 string filepath = string.Format(@"D:/example{0}",FileExtention); //如果文件已经存在则删除 if (File.Exists(filepath)) File.Delete(filepath); //创建文件流实例,用于写入文件 FileStream stream = new FileStream(filepath,FileMode.CreateNew); //写入文件 stream.Write(FileByte,FileByte.Length); stream.Close(); return FileByte.Length; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。