C# 上传文件wcf

C# 上传文件wcf,c#,.net,wcf,upload,C#,.net,Wcf,Upload,我将创建一个WCF,用于将图像或pdf文件等文件上载到te服务器。 如何创建能够处理此功能的服务? 我试图在谷歌上搜索它,但文章的大部分内容都告诉我使用流作为服务参数。但是我想要的是对文件内容使用byte[](数组)。因为,该服务不仅使用.nte framework进行访问,还使用其他技术,如php、java、objective-c等 有什么帮助吗?创建一个WCF服务方法,该方法接受字节[]作为参数: [OperationContract] public void ReceiveByteArra

我将创建一个WCF,用于将图像或pdf文件等文件上载到te服务器。 如何创建能够处理此功能的服务? 我试图在谷歌上搜索它,但文章的大部分内容都告诉我使用流作为服务参数。但是我想要的是对文件内容使用byte[](数组)。因为,该服务不仅使用.nte framework进行访问,还使用其他技术,如php、java、objective-c等


有什么帮助吗?

创建一个WCF服务方法,该方法接受
字节[]
作为参数:

[OperationContract]
public void ReceiveByteArray(byte[] byteArray) { ... }

看来流媒体是你唯一的选择。看到这个了吗

见这个问题:

您可以查看这篇文章:


它讨论的只是为接收任意数据而设置WCF服务,您可以从任何客户端(php、java等)发布消息。

创建一个接受文件流的WCF服务方法

  • 使用fileupload控件可以执行该任务
  • 在客户端站点上创建临时文件夹
  • 这里是代码

    string fileextension = null, FileName = null;
    
    try
    {
        if (FileUpload1.HasFile)
        {
    
            ITransferFile clientUpload = new TransferFileClient();
            RemoteFileInfo uploadRequestInfo = new RemoteFileInfo();
            fileextension = Path.GetExtension(FileUpload1.PostedFile.FileName);
    
            FileUpload1.PostedFile.SaveAs(Server.MapPath(Path.Combine("~/TempFolder/", FileName + fileextension)));
            System.IO.FileInfo fileInfo = new System.IO.FileInfo(Server.MapPath("~/TempFolder/") + FileName + fileextension);
    
            using (System.IO.FileStream stream = new System.IO.FileStream(fileInfo.FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read))
            {
                uploadRequestInfo.FileName = FileUpload1.PostedFile.FileName;
                uploadRequestInfo.Length = fileInfo.Length;
                uploadRequestInfo.FileByteStream = stream;
                clientUpload.UploadFile(uploadRequestInfo);
            }
    
        }
    
    
    }
    catch (Exception ex)
    {
        System.Web.HttpContext.Current.Response.Write("Error : " + ex.Message);
    }
    finally
    {
        if (File.Exists(Server.MapPath("~/TempFolder/") + FileName + fileextension))
        {
            File.Delete(Server.MapPath("~/TempFolder/") + FileName + fileextension);
        }
    }
    

    这不适用于大文件。使用更好。按请求使用字节数组可能是个坏主意。也许除了使用http put处理程序之外,WCF服务可能是一个很好的主意Ayozora想在各种平台上使用它,该解决方案并不理想,但在90%的情况下会有所帮助,对于其他情况,可能需要智能上传器…字节数组不是文件。应编辑此问题的主题,以反映发布字节数组的愿望。这是误导。