3

我对 ServiceStack 中的 PostFileWithRequest<> 方法有疑问,因为文件字段的名称被硬编码为单词“upload”>

部分数据流

Content-Disposition: form-data;name="upload";filename="Julie.mp3"

这是来自文件 ServiceClientBase.cs 中的第 407 行

         stream.Write("Content-Disposition: form-data;name=\"{0}\";filename=\"{1}\"{2}{3}".FormatWith(new object[] { "upload", fileName, text, text }));

这包含在一个虚拟方法中,但我不知道如何在派生类中更改它,因为我的新类无法访问其他方法。

public virtual TResponse PostFileWithRequest<TResponse>(string relativeOrAbsoluteUrl, Stream fileToUpload, string fileName, object request)

有任何想法吗?

作为表单数据的名称,这对我来说像是一个错误;名称应该是可配置的,而不是硬编码的。

就我而言,我需要将文件命名为“文件”才能使用特定的 API。

克里斯

4

1 回答 1

1

我向ServiceStack (尽管是 v4)提交了一个拉取请求,该请求已被接受并将包含在下一个版本 4.0.14 中。

fieldName这为方法添加了一个可选参数,PostFileWithRequest<TResponse>它允许您指定字段名称而不是卡在upload.

所以方法的新签名:

public virtual TResponse PostFileWithRequest<TResponse>(string relativeOrAbsoluteUrl, Stream fileToUpload, string fileName, object request, string fieldName = "upload")
于 2014-03-17T22:50:17.793 回答