2017-02-22 7 views
-1

В настоящее время я пытаюсь открыть PDF-файл в веб-браузере. Я извлекаю массив байтов pdf из базы данных и сохраняю его в папке приложения. Отсюда я не могу получить PDF-файл для запуска в коде C#. Любая помощь будет очень признательна, поскольку я в тупике.Почему не работает мой файл PDF. ASP.net, C#

if(dt.Rows.Count > 0) 
     { 
      byte[] data = (byte[])dt.Rows[0][0]; 
      string strFileName = Utilities.GetAppBasePath()+Config.GetImages+DateTime.Now.Millisecond.ToString()+".pdf"; 
      System.IO.File.WriteAllBytes(strFileName, data); 

      OpenPDF(strFileName); 
} 
protected void OpenPDF(string strFileName) 
    { 
      Response.Redirect(strFileName); 
    } 
+1

'Отсюда я не могу получить PDF для запуска в коде C#. '- вы получаете исключение? Было бы полезно предоставить более подробную информацию, кроме как «она не работает». –

ответ

0

Я не знаю, если работает PDF работает так, как работает обычное приложение, если это произойдет, то я думаю, что вам лучше всего МОГ использовать что-то вроде линии «Process.Start (strFileName) ;» или 'Process.Start (strFileName.Text);'

0

Привет, ребята, спасибо за ваши комментарии, очень ценим. Не было никаких исключений, но причина, по которой он не работал, был вызван обратным вызовом. Теперь я включил триггер для этого, чтобы обойти это. Дэн, ты прав это не может быть названо, как это ответ перенаправлять и решить эту проблему, я использовал следующий код:

if(dt.Rows.Count > 0) 
     { 
      byte[] data = (byte[])dt.Rows[0][0]; 

      OpenPDF(data);     
     } 

protected void OpenPDF(byte [] data) 
    { 
     HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.ClearHeaders(); 
     HttpContext.Current.Response.ClearContent(); 
     HttpContext.Current.Response.ContentType = "application/pdf"; 
     HttpContext.Current.Response.Charset = ""; 
     HttpContext.Current.Response.AddHeader("Pragma", "public"); 
     HttpContext.Current.Response.AddHeader("Content-Disposition", "inline; filename=\"image.pdf\""); 
     HttpContext.Current.Response.BinaryWrite(data); 
     HttpContext.Current.Response.Flush(); 
     HttpContext.Current.Response.Close(); 
     HttpContext.Current.Response.End();    
    } 

Еще раз спасибо за вашу помощь, приносит извинения за vauge-Несс, им очень новый размещение на этом сайте, и я надеюсь, что этот пост поможет другим людям в этом вопросе.

Спасибо

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