2013-08-20 7 views
3

У меня есть проблема с PostFileWithRequest <> метод ServiceStack в том, что имя поля файла закодировано слово «загрузить»>ServiceStack PostFIleWithRequest «имеет» жестко закодирован контент распоряжение поля имени

Часть потока данных

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

И это из строки 407 в файле ServiceClientBase.cs

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

Это содержится в пр irtual method, но я не знаю, как я могу изменить это в производном классе, так как есть другие методы, недоступные для моего нового класса.

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

Любые идеи?

Это выглядит как ошибка для меня как имя формы данных, имя должно быть настраиваемым, а не жестко закодированным.

В моем случае мне нужен файл, который будет иметь имя под названием «Файл», чтобы использовать определенный API.

Крис

ответ

1

Я представил pull request к 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")