У меня есть страница mvc 3, с которой я хочу загружать изображения на свой веб-сайт, используя silverlight для загрузки и представления индикатора выполнения и кнопки отмены при загрузке. Но я продолжаю получать нулевое значение в моем контроллере для аргумента HttpPostedFileBase.
Вот мой код загрузки Silverlight ...
var client = new WebClient();
client.Headers[HttpRequestHeader.ContentType] = "multipart/form-data";
client.OpenWriteCompleted += (sender1, e1) =>
{
PushData(stream, e1.Result);
e1.Result.Close();
stream.Close();
};
client.UploadProgressChanged += (sender1, e1) =>
{
this.pbStatus.Value = e1.ProgressPercentage;
};
// get uri from params
param = App.Current.Host.InitParams["url"];
var uri = new Uri(param, UriKind.Relative);
client.OpenWriteAsync(uri, "POST");
Метод Push-данных ...
private void PushData(Stream input, Stream output)
{
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) != 0)
{
output.Write(buffer, 0, bytesRead);
}
}
И мой код контроллера ...
[HttpPost]
public ActionResult UploadTexture(HttpPostedFileBase file)
{
}
Параметр файла в моем контроллере равен нулю при вызове контроллера. Кто-нибудь знает, что я делаю не так?
Я видел примеры, которые реализуют IHttpHandler, но я пытаюсь избежать этого и придерживаюсь только прямых контроллеров mvc 3.