2014-12-03 2 views
0

Я использую приведенный ниже код в mvc для загрузки файла Excel, но он слишком длинный.Ошибка: строка запроса HTTP слишком длинная

public ActionResult Download(string input) 
{ 
    Response.Clear(); 
    Response.ClearHeaders(); 
    Response.ClearContent(); 
    Response.Buffer = true; 
    Response.AddHeader("Content-Disposition", "attachment; filename= download.xlsx"); 
    Response.AddHeader("Content-Type", "application/Excel"); 
    Response.ContentType = "application/vnd.ms-excel"; 
    Response.WriteFile(input); 
    Response.End(); 

    return Content(String.Empty); 
} 
+1

Какое имя файла? можете ли вы скопировать его в временное местоположение с более коротким именем пути к файлу? – DLeh

+1

В чем вопрос? – Eun

+0

также вы должны использовать метод 'File()' вместо прямого ответа. Использование: 'Загрузка (ввод строки) {return File (" download.xlsx "); } ' – DLeh

ответ

0

Этот код работает для меня PDF:

public FileStreamResult DownnloadPDF(int id) 
     {Document document = new Document(); 

      MemoryStream stream = new MemoryStream(); 
       PdfWriter pdfWriter = PdfWriter.GetInstance(document, stream); 
       pdfWriter.CloseStream = false; 

       document.Open(); 

       formatPDF(document, model); 

document.Close(); 

      stream.Flush(); //Always catches me out 
      stream.Position = 0; //Not sure if this is required 

      return File(stream, "application/pdf", "title" + ".pdf"); 
     } 

Я действительно думаю, что ваш ActionResult не будет работать.

+0

Я использую поток файлов. Он слишком долго создает ту же строку с запросом ошибок. Response.WriteFile работает отлично IE11 и firefox, но не в chrome –

+0

@GurpreetChhabra, если querystring os too long, я предлагаю вам использовать HTTPOST instemad неявного HTTPGET, если это возможно для вас – clement

Смежные вопросы