Asp.net 如何将.ZIP文件发送到Web服务

Asp.net 如何将.ZIP文件发送到Web服务,asp.net,web-services,Asp.net,Web Services,如何使用ASP.NET(C#)将.ZIP文件发送到Web服务 不可能吗?您可以将文件转换为字节数组,并将该数组传递给服务: var fs = new FileStream(filename, FileMode.Open, FileAccess.Read); var fileData = new byte[fs.Length]; fs.Read(fileData, 0, Convert.ToInt32(fs.Length)); fs.Close(); 只需将fileData作为方法参数传递给we

如何使用ASP.NET(C#)将.ZIP文件发送到Web服务
不可能吗?

您可以将文件转换为字节数组,并将该数组传递给服务:

var fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
var fileData = new byte[fs.Length];
fs.Read(fileData, 0, Convert.ToInt32(fs.Length));
fs.Close();

只需将
fileData
作为方法参数传递给web服务,或者通常在设置中传递值。(就我个人而言,我更喜欢请求/响应式服务层而不是webmethods,但每个层都有自己的服务层。)

如果文件可能很大,您可能希望使用分块方法发送它们,以便向用户提供反馈:


您所说的“web服务”是什么意思?“发送.ZIP文件”是什么意思?你想发送文件,还是解压缩并发送内容?或者你只是想让用户上传ZIP文件?谢谢。我不想用方法参数归档。只有通过参数发送吗?@Murat:这取决于您的web服务设置。您的服务只是公开web方法吗?如果是这样的话,那么该服务所做的就是期望方法参数。@大卫:我已经这样做了,但是否可以在Web服务上读取此文件,然后将其物理保存在某个位置?@AJ:当然可以。一旦你有了字节数组,你可以用它做任何你想做的事情。如果您还需要携带更多信息(例如文件名、可能的内容类型、其他元数据),那么您可以创建一个自定义DTO类,而不仅仅是字节数组,它只是一个带有默认get/set参数的空类。一个参数是字节数组,一个是名称字符串,等等。然后web服务可以使用所有这些数据来确定如何处理文件。