Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何解析http头多部分/表单数据_C#_Wcf_Http Headers_Filestream_Wcf Rest - Fatal编程技术网

C# 如何解析http头多部分/表单数据

C# 如何解析http头多部分/表单数据,c#,wcf,http-headers,filestream,wcf-rest,C#,Wcf,Http Headers,Filestream,Wcf Rest,我创建了一个WCF Rest服务,正在读取由多部分/表单数据发送的内容。然而,我从流中获得了contentdisposition和额外的信息。 导致文件损坏,尤其是图像损坏。我的服务托管在IIS上。下面是用于实现的代码。当我上传文件时,这些文件会添加额外的内容。如何删除额外的内容 public string UploadFile(Stream fileContent) { try { FileStream ta

我创建了一个WCF Rest服务,正在读取由多部分/表单数据发送的内容。然而,我从流中获得了contentdisposition和额外的信息。 导致文件损坏,尤其是图像损坏。我的服务托管在IIS上。下面是用于实现的代码。当我上传文件时,这些文件会添加额外的内容。如何删除额外的内容

public string UploadFile(Stream fileContent)
    {           
        try
        {
            FileStream targetStream = null;
            string uploadFolder = @"C:\Upload";
            string filePath = Path.Combine(uploadFolder, "123");             

            using (targetStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None))
            {                   
                const int bufferLen = 45000;
                byte[] buffer = new byte[bufferLen];
                int count = 0;
                while ((count = fileContent.Read(buffer, 0, bufferLen)) > 0)
                {
                    // save to output stream
                    targetStream.Write(buffer, 0, count);
                }

                targetStream.Close();
                targetStream.Dispose();
            }
        }
        catch (Exception ex)
        {
            return ex.Message;
        }
        return "Image Uploaded";
    }    

为什么不做
fileContent.CopyTo(targetStream)而不是用缓冲区之类的循环?我不想将流从一个复制到另一个。我可以使用该服务上传文件,但我在服务器上上传的文件中得到了额外的内容作为内容处置。我如何删除额外的内容?您能否分享此方法的调用方式?例如,如何获取流?var ft=new FileTransfer();ft.upload(fileURI,encodeURI(“),win,fail,options);ft.abort();它使用的是Cordove文件上传插件。我认为这将对您有所帮助。