当前位置: 首页 > 编程语言 > C#

POSTStreamContent共享多个文件

时间:2023-04-10 13:20:48 C#

POSTStreamContent多个文件以下代码片段成功HttpPosts单个文件到WebAPI。我想扩展它以构建具有多个文件的StreamContent(类似于Fiddler多文件发布)。我知道我应该向StreamContent添加一个“边界”,但我不确定确切的位置。我想最终将FileStream/Stream参数转换为List,这样我就可以遍历集合并将StreamContent构建为POST。请让我知道这篇文章是否有意义。我感谢任何建议。提出前致谢!publicasyncTaskUploadOrderFile(FileStreamimageFileStream,stringfilename,stringcontentType="image/png"){varcontent=newMultipartFormDataContent{JsonApiClient.CreateFileContent(imageFileStream,filename,contentType)};JsonApiClient._client.DefaultRequestHeaders.Add("Authorization","Bearer"+JsonApiClient.Token.AccessToken);varresponse=awaitJsonApiClient._client.PostAsync("api/UploadFile",content);响应.EnsureSuccessStatusCode();返回响应.StatusCode;}internalstaticStreamContentCreateFileContent(Streamstream,stringfileName,stringcontentType){varfileContent=newStreamContent(stream);fileContent.Headers.ContentDisposition=newContentDispositionHeaderValue("form-data"){Name=""files"",FileName="""+fileName+"""};fileContent.Headers.ContentType=newMediaTypeHeaderValue(contentType);返回文件内容;}编辑:我没有任何问题接收和保存已发布问题在于创建发布多个文件所需的StreamContent。以下是我尝试过的对我有用的解决方案。CreateFileContent中没有任何变化。我只是将参数转换为集合,遍历每个集合,并从多个StreamContents添加新的MultiPartFormDataContent。边界也被添加到MultipartFormDataContent对象。如果您发现任何效率低下或完全错误的地方,请告诉我。谢谢!publicasyncTaskUploadOrderFile(ListimageFileStream,Listfilename,stringsalesOrderNo,ListcontentType){JsonApiClient._client.DefaultRequestHeaders.Clear();varboundary="--------------------------"+DateTime.Now.Ticks.ToString("x",NumberFormatInfo.InvariantInfo);varcontent=newMultipartFormDataContent(边界);for(vari=0;itrythismethod以上就是C#学习教程的全部内容:POSTStreamContentsharewithmultiplefiles如果对大家有用需要进一步了解C#学习教程希望大家将更加关注它——publicHttpResponseMessagePost(){varhttpRequest=HttpContext.Current.Request;if(httpRequest.Files.Count>0){foreach(stringfileinhttpRequest.Files){varcontent=newMultipartFormDataContent{JsonApiClient.CreateFileContent(postedFile.InputStream,postedFile.FileName,postedFile.ContentType)};//注意:要存储在内存中,请使用postedFile.InputStream}returnRequest.CreateResponse(HttpStatusCode.Created);}returnRequest.CreateResponse(HttpStatusCode.BadRequest);}内部静态StreamContentCreateFileContent(Streamstream,stringfileName,stringcontentType){varfileContent=newStreamContent(stream);fileContent.Headers.ContentDisposition=newContentDispositionHeaderValue("form-data"){Name=""files"",FileName="""+fileName+"""};fileContent.Headers.ContentType=newMediaTypeHeaderValue(contentType);返回文件内容;}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: