通过.net webservice检索文件

时间:2010-08-11 16:18:35

标签: .net web-services

在.net Web服务中,有一种方法可以在SOAP请求中发送文件名,并且服务将File本身作为SOAP响应中的附件返回。我在想是否只能将文件作为文件流对象或某种.net I / O相关对象返回,而不是作为附件返回。我被要求检查是否可以这样做?有什么想法或意见吗?

1 个答案:

答案 0 :(得分:3)

attachment你是什么意思? SOAP响应表示发送到客户端的XML编码数据。 byte[]等二进制结构将base64编码并在响应正文中发送。因此,以下方法应该完成这项工作:

[WebMethod]
public byte[] GetFile(string filename) 
{
    // Add security checks, etc... as such method is begging for hacks
    return File.ReadAllBytes(filename);
}

此外,您应该考虑使用WCF,因为ASP.NET Web服务现在被视为已弃用的技术。还存在基于HTTP的协议,例如MTOM,它支持通过线路优化的二进制数据传输。