我将创建一个WCF,用于将图像或pdf文件等文件上传到te服务器。 如何创建可以处理此功能的服务? 我试图谷歌搜索它,但大多数文章告诉我使用Stream作为服务参数。但我想要的是使用byte [](数组)作为文件内容。因为,这项服务不仅可以使用.nte框架访问,还可以使用其他技术,如php,java,objective-c等。
有什么帮助?
答案 0 :(得分:5)
似乎流媒体是您唯一的选择。见 [MSDN example]
看到这个问题: How to upload a file to a WCF Service?
它谈到只是设置WCF服务来接收任意数据,你可以从任何客户端(php,java等)发布
答案 1 :(得分:4)
创建一个接受byte[]
作为参数的WCF服务方法:
[OperationContract]
public void ReceiveByteArray(byte[] byteArray) { ... }
答案 2 :(得分:0)
创建接受文件流的WCF服务方法。
这里代码......
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);
}
}