2016-09-16 4 views
1

Я создал PDF-форму с кнопкой отправки, которая отправляет ее на мой сайт, который обрабатывает ее и сохраняет ее для последующего использования.Получить представленную форму PDF на сервере

На моем веб-сайте я хотел бы взять POSTed pdf и сохранить его. Однако я не могу найти, как конвертировать в входящий поток обратно в PDF.

Это код, который я в настоящее время

[HttpPost] 
public string PostPDF() 
{ 
    using (var sr = new System.IO.StreamReader(Request.InputStream)) 
    { 
     var fdfStream = sr.ReadToEnd(); 
    } 

    ... 
    return "Form submitted successfully!"; 
} 

других вещей, которые я пытался получал в httpPostedFileBase и байты [], как так:

[HttpPost] 
public ActionResult PostPDF(HttpPostedFileBase file) 

[HttpPost] 
public ActionResult PostPDF(byte[] file) 

обоего из которых были пустые результаты.

+0

'HttpPostedFileBase' должен быть правильный вариант .. проверить этот блог о загрузке файла в MVC http://www.prideparrot.com/blog/archive/2012/8/uploading_and_returning_files –

ответ

1

Приведенный ниже код должен выполнять эту работу.

 HttpRequestMessage request = this.Request; 
     if (!request.Content.IsMimeMultipartContent()) 
     { 
      throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); 
     } 
     var parts = await request.Content.ReadAsMultipartAsync(); 
     Stream inputStream = null; 
     string fname = null; 

     foreach (var part in parts.Contents) 
     { 
      string dispoName = part.Headers.ContentDisposition.Name; 
      if (dispoName.Equals("\"inputFile\"")) 
      { 
       fname = part.Headers.ContentDisposition.FileName; 
       inputStream = await part.ReadAsStreamAsync(); 
      } 
     } 

     if (inputStream == null) 
     { 
      throw new HttpResponseException(HttpStatusCode.BadRequest); 
     } 
Смежные вопросы