WCF上传大文件

时间:2010-08-30 17:58:35

标签: wcf

我正在构建数字标牌应用程序,我需要允许我的用户上传大型图片/视频。我已经看过流模式,允许上传和下载文件,这似乎是要走的路。我的问题是,我需要弄清楚正确的上传方法。我需要在我的数据库中输入一个条目,然后将文件上传到服务器上的特定文件夹(每个客户都有自己的文件夹,需要放置文件)。我的问题是,与上传流相比,似乎无法与文件一起发送更多信息。我需要的只是一些元数据,文件名和客户ID。任何人都有这方面的实例,或指出我正确的方向......

此致 /布赖恩

2 个答案:

答案 0 :(得分:1)

嗯,你不是说你尝试了什么以及它是如何失败的,但这里是我们如何做的基本概述:

[ServiceContract]
public interface IMyStreamingService
{
    [OperationContract]
    void Upload(FileUploadRequest request);
}

[MessageContract]
public class FileUploadRequest
{
    [MessageHeader(MustUnderstand = true)]
    public string Path;

    [MessageBodyMember(Order = 1)]
    public Stream FileData;

    public FileUploadRequest(string path, Stream fileData)
    {
        this.Path = path;
        this.FileData = fileData;
    }
}

答案 1 :(得分:0)

我几天前回答过类似的question。您必须声明接受并返回消息合同的操作。您必须创建消息合同。对于流合同,只能包含Stream类型的单体成员。其他合同成员必须声明为标题。链接问题包含下载的完整示例。您只需要为上传做同样的事情。