C#WebService下载文件
来源:互联网 发布:js冒泡排序算法 编辑:程序博客网 时间:2024/05/17 21:59
WebService项目中的Web.config配置代码
<appSettings>
<add key="UploadFileFolder" value="/Uploads/TestUpload/" />
</appSettings>
WebService项目中的ImageService.asmx代码
/// <summary>
/// Webservice中的下载文件处理函数
/// </summary>
/// <param name="filePath">文件路径</param>
/// <returns>返回文件流</returns>
[WebMethod(Description = "下载服务器站点文件,传递文件相对路径")]
public byte[] DownloadFile(string strFilePath)
{
FileStream fs = null;
string CurrentUploadFolderPath = Server.MapPath(ConfigurationManager.AppSettings["UploadFileFolder"]);
string CurrentUploadFilePath = CurrentUploadFolderPath + strFilePath;
if (File.Exists(CurrentUploadFilePath))
{
try
{
///打开现有文件以进行读取。
fs = File.OpenRead(CurrentUploadFilePath);
int b1;
System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
while ((b1 = fs.ReadByte()) != -1)
{
tempStream.WriteByte(((byte)b1));
}
return tempStream.ToArray();
}
catch (Exception ex)
{
return new byte[0];
}
finally
{
fs.Close();
}
}
else
{
return new byte[0];
}
}
Winform项目中的窗体下载按钮代码
private void btnDownload_Click(object sender, EventArgs e)
{
string CurrentServiceFilePath = this.txtServiceFile.Text.Trim();
string CurrentDownloadFolderPath = this.txtDownloadFolder.Text.Trim();
if (CurrentServiceFilePath == "" || CurrentDownloadFolderPath == "")
{
MessageBox.Show(DownloadImage(CurrentServiceFilePath, CurrentDownloadFolderPath));
}
else if (CurrentServiceFilePath == "")
{
MessageBox.Show("请填写要下载的服务器文件路径和选择本地保存目录");
}
else if (CurrentDownloadFolderPath == "")
{
MessageBox.Show("请填写要下载的服务器文件路径和选择本地保存目录");
}
}
Winform项目中的窗体下载按钮调用函数
/// <summary>
/// 通过WebService下载文件
/// </summary>
/// <param name="ServiceFilePath">服务器图片路径</param>
/// <param name="DownloadFolderPath">本地图片路径</param>
private string DownloadImage(string ServiceFilePath, string DownloadFolderPath)
{
try
{
string DownloadFileName="";
if (ServiceFilePath.Contains("/"))
{
DownloadFileName=ServiceFilePath.Substring(ServiceFilePath.LastIndexOf("/"));
}
else
{
DownloadFileName = ServiceFilePath;
}
string DownloadFilePath = DownloadFolderPath +"\\"+ DownloadFileName;
localhost.ImageService myImageService=new localhost.ImageService();
byte[] bytes = myImageService.DownloadFile(ServiceFilePath);
if (bytes != null)
{
if (!Directory.Exists(DownloadFolderPath)) {
Directory.CreateDirectory(DownloadFolderPath);
}
if (!File.Exists(DownloadFilePath))
{
File.Create(DownloadFilePath).Dispose();
}
//如果不存在完整的上传路径就创建
FileInfo downloadInfo = new FileInfo(DownloadFilePath);
if (downloadInfo.IsReadOnly) { downloadInfo.IsReadOnly = false; }
//定义并实例化一个内存流,以存放提交上来的字节数组。
MemoryStream ms = new MemoryStream(bytes);
//定义实际文件对象,保存上载的文件。
FileStream fs = new FileStream(DownloadFilePath, FileMode.Create);
///把内内存里的数据写入物理文件
ms.WriteTo(fs);
fs.Flush();
ms.Flush();
ms.Close();
fs.Close();
fs = null;
ms = null;
}
return "下载成功";
}
catch(Exception ex)
{
return "下载失败"+ex.Message;
}
}
- C#WebService下载文件
- C#WebService下载文件
- C#WebService下载文件
- WebService文件上传,下载
- webservice下载文件
- WebService上传和下载文件
- Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】
- 通过WebService上传和下载文件
- 通过WebService 上传和下载文件
- c# winform通过webservice下载文件
- c# winform通过webservice下载文件
- C++中利用WebService下载文件
- CXF webService 实现文件上传与下载
- C#FTP下载文件
- 【C#】下载文件
- Silverlight实用窍门系列:22.Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】
- C#,webservice,http下载word,AsposeWords合并word
- C语言 HTTP 下载文件
- gridview导出exe处理时遇到RegisterForEventValidation can only be called during Render();错误
- linux进程间通信
- Linux内存管理(一)
- Linux系统Java程序性能调优
- Services in Oracle Database 10g
- C#WebService下载文件
- COM笔记(生存周期控制)
- Boost在VS2008下的正确编译
- 关于php加密算法,可以用于COOKIE加密等
- AWK常用命令华(1)
- Linux内存管理(二)
- 内核版本号
- 简单对比微软WorkFlow3.5与4.0的差异
- 说话之道七