내 문제는 다음과 같습니다. mvc3 프로젝트가 있습니다. 문제는 엑셀 시트로드 페이지에 있습니다. 먼저 Excel 시트를 데이터베이스에 업로드하고 싶습니다. 다음으로 나는 pdf를 엑셀 시트에 기초하여 작성하고 그 pdf를 사용자에게 반환한다. 마지막으로 ui의 행을 업데이트하려는 경우 새로운 Excel 시트가로드되었습니다.파일을 사용자에게 반환하고 UI를 업데이트하는 방법
그래서 주된 문제는 pdf 문서를 사용자에게 전달한 후 업데이트 행을 수행 할 수 없다는 것입니다.
이것은 내가 시도한 간단한 예입니다. 먼저 내 고객 측 업로드. (나는 Microsoft.Web.Helpers.FileUpload 구성 요소를 사용하고 있습니다) : 눌렀습니다 사용자 후
@using (Html.BeginForm("NewFile", "LoadData", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@FileUpload.GetHtml(initialNumberOfFiles: 1, allowMoreFilesToBeAdded: false, includeFormTag: false, addText: "Add Files", uploadText: "Upload File")
<input type="submit" name="submit" id="submit" value="Lataa tiedot" />
}
버튼이 내 텍스트에 전에 소개 무엇을 그 기능을 어떻게해야 제출합니다.
[HttpPost]
public ActionResult NewFile(IEnumerable<HttpPostedFileBase> fileUpload, bool checkPrintAlso, bool chkBigCards, int hiddenCustomer, string comment)
{
try
{
foreach (var file in fileUpload)
{
if (file != null && file.ContentLength > 0)
{
var excelService = new ExcelService();
var trackingCodes = excelService.NewLoadData(file, User.Identity.Name, comment, hiddenCustomer);
if (checkPrintAlso)
{
CreatePdf(trackingCodes, chkBigCards);
return new EmptyResult();
}
}
return RedirectToAction("Index", error);
}
catch (Exception e)
{
}
}
난 더 이상 사용자에게 반환하지 않습니다 null 또는 emptyResult PDF 것보다 다른 것을 반환하는 경우 : 나는 시트를 엑셀 및 PDF - 문서를 만들로드하는 방법이다. 내가 createPdf 및 응답 데이터를 작성하는 방법이다 : 나는 PDF 문서는 사용자까지 종료 후 처리 JQuery와 내가 처리하여 진행 할 수 아약스을 위해 노력했다
[HttpPost]
public void CreatePdf(IEnumerable<TrackingCode> trackingCodes, bool isBig)
{
//This creates pdf
var blackGinBarCodePdf = new BlackGinBarcodePdf(trackingCodes, isBig);
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", string.Format(CultureInfo.InvariantCulture, "attachment;filename=Receipt-{0}.pdf", "briefcases"));
Response.BinaryWrite((byte[])blackGinBarCodePdf);
}
,하지만 난 예를 아약스을 위해 할 때 게시 작업이 성공 메시지를 반환하지 않습니다. Mozilla에서 오류 코드 0을 리턴하고 IE는 코드 500 (내부 서버 오류)을 리턴합니다. 이것은 내가 아약스에 게시물을하려고 노력한 방법이다 :
$("#submit").click(function()
{
$.ajax(
{
url: "/LoadData/NewFile",
type: 'post',
error: function (xhr, ajaxOptions, thrownError)
{
alert(xhr.status);
alert(thrownError);
},
success: function (data) { }
})
//add row to ui!
;
});
누군가 내 문제를 이해하기를 바랍니다. 다시 한 번, 버튼을 클릭 한 후 수행해야 할 단계를 수행하십시오. 1. 데이터베이스에 LoadExcel 2. pdf로 파싱 Excel 3. pdf를 사용자에게 반송하십시오. 4. 업데이트 ui (사용자에게 pdf를 반환 한 후 문제가 발생 함)
나는 누군가가 나를 도울 수 있다면 정말 preciated. 나는 그것을 어떻게 할 수 있습니까?
: 리턴 파일 ((바이트 []) blackGinBarCodePdf를 " 응용 프로그램/pdf "); –