`
xqf222
  • 浏览: 128859 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

C#WebService下载文件

 
阅读更多

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;
}
}


分享到:
评论

相关推荐

    WebService上传下载文件

    用webservice作为服务器端,以流的方式实现文件的上传和下载,可以自动调用winrar进行压缩和加密,支持多线程和断点续传功能,默认是16K一个包,全部源码,已经在实际项目中应用。客户端有winform和服务两种方式的...

    C#webservice调用测试工具

    【文件名称列表】:webservice测试调用工具WebserviceStudio20 根据这个文件名,我们可以推断这是一个名为"WebserviceStudio"的测试工具的版本20,可能是该工具的第20个版本或者2020年发布的版本。这个工具可能包含...

    C# WebService 客户端 服务器 Json

    2. 返回Json数据:为了使WebService返回Json,可以在Web.config或服务配置文件中设置响应格式为Json。对于ASMX,可以在方法上使用ScriptMethod特性;对于WCF,可以配置绑定和行为。 五、Json与WebService的交互示例...

    C# WebService 客户端 服务器 Get Post

    在IT行业中,Web服务是一种通过网络提供功能的软件系统,其中C# WebService客户端和服务器是.NET框架下实现Web服务交互的重要组成部分。本篇将详细阐述C# WebService客户端和服务器如何利用GET和POST方法进行数据...

    C#Webservice+微信小程序上传多个文件

    本主题将深入探讨如何使用C#编写Webservice来接收微信小程序上传的多个文件,特别是图片文件,并涵盖安全验证方面的内容。 首先,我们要理解C# Web服务的基础。在C#中,我们可以使用ASP.NET的ASMX或WCF(Windows ...

    c#Webservice的简单demo

    在IT行业中,Web服务是一种允许不同应用程序之间进行通信的技术,而C#是.NET框架下用于构建这些服务的主要编程语言。...这个简单的“c#Webservice的简单demo”应该能帮助初学者快速入门,进一步探索Web服务的世界。

    C# Webservice返回指定的xml格式

    本篇文章将深入探讨如何使用C#和Visual Studio 2019(VS2019)来创建一个WebService,使其能够返回指定的XML格式。XML(eXtensible Markup Language)是一种自定义标记语言,广泛用于数据交换、存储和结构化信息表示...

    C# winfrom中webservice接口连接服务器上传图片和下载图片

    总之,C# WinForm中的WebService接口连接服务器上传和下载图片,涉及到了文件操作、网络通信、数据转换等多个技术环节。理解并熟练掌握这些技术,能帮助开发者构建出高效、稳定且功能丰富的桌面应用程序。

    C# WebService返回数据四种方法及动态调用

    C# WebService返回数据四种方法(DataSet, 序列化的DataSet, Microsoft组件处理序列化DataSet, Microsoft组件处理序列化压缩DataSet)及动态调用WebService

    Android 上传文件到c# webservice

    在本场景中,我们讨论的是如何将Android设备上的文件上传到由C#编写的Web服务(WebService)。以下是对这个过程的详细解释: 1. **Android端的文件选择与读取**: - Android应用首先需要获取用户选择的文件。可以...

    C,C#webservice 返回数组,二进制

    标题“C,C# webservice 返回数组,二进制”意味着我们将讨论如何创建一个Web服务,该服务能够接收和返回数组形式的数据,并且这些数据可能是以二进制格式存储的。二进制数据通常用于处理图像、音频、视频或其他大型...

    C# 开发webservice接口、请求HTTP接口、iis发布服务

    ### C# 开发WebService接口、请求HTTP接口及IIS发布服务详解 #### 一、概述 本篇将详细介绍如何利用C#与Visual Studio 2022开发WebService接口、请求HTTP接口并最终通过IIS发布服务的过程。我们将涵盖以下几个方面...

    C# webservice大文件传输实例源码

    在IT行业中,大文件传输是一项常见的需求,尤其是在网络服务中,如C#的WebService应用。本实例源码提供了一个解决方案,允许用户通过C#编写的WebServcie进行大文件的上传和下载。以下是对这个实例的详细解读: 1. *...

    c#操作XML 读取、生成,WEBSERVICE接口

    本教程将深入探讨如何在C#中操作XML,包括读取和生成XML文档,并利用Web Service接口进行数据传输。 1. **C#操作XML:读取** 在C#中,我们可以使用`System.Xml`命名空间中的类来处理XML文档。其中,`XmlDocument`...

    C# webservice实例与在IIS上的部署

    3. **测试Webservice**:在Visual Studio中,点击工具栏的"调试" -&gt; "启动调试",会自动打开一个Web浏览器显示服务的默认文档。点击"Show wsdl"链接,可以查看服务接口的定义。 ### 二、Web网站和Winform调用...

    android 扫描二维码+c# webservice

    本项目结合了Android的二维码扫描与C#编写的WebService服务,为开发者提供了一个实用的学习示例。 首先,我们要了解如何在Android应用中实现二维码扫描。Android SDK并没有内置的二维码扫描库,但我们可以借助开源...

    C# 通过WebService上传视频文件到服务器虚拟机下源码

    本主题将深入探讨如何使用C#通过Web Service上传视频文件到服务器虚拟机下的源码实践。 首先,`WebService`是基于HTTP协议的远程调用技术,允许不同的应用程序之间进行数据交换。在C#中,我们通常使用ASP.NET来创建...

    C#操作webservice(经典入门教程及实例)

    使用 C# 可以轻松地操作 WebService,通过使用 WSDL 文件,可以生成客户端代码来调用 Web 服务。同时,C# 也提供了许多内置的类和方法来处理 SOAP 消息和 XML 数据。 WebService 是一种强大的技术,可以实现系统...

Global site tag (gtag.js) - Google Analytics