Tôi đang làm việc trên một ứng dụng web và cần truyền các tệp khác nhau. Tôi có thể làm pdf, hình ảnh và tài liệu Office cũ hơn. Tuy nhiên, khi tôi cố gắng làm với các tài liệu năm 2007, nó sẽ bị hỏng. Đây là mã của tôi:Làm cách nào để bạn phát trực tuyến tệp Excel 2007 hoặc Word 2007 bằng asp.net và C#
Response.Buffer = true;
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
switch (FileExtension.ToLower())
{
case "pdf":
Response.ContentType = "application/pdf";
break;
case "doc":
Response.ContentType = "application/msword";
break;
case "docx":
Response.ContentType = "application/vnd.ms-word.document.12";
break;
case "xls":
Response.ContentType = "application/vnd.ms-excel";
break;
case "xlsx":
Response.ContentType = "application/vnd.ms-excel.12";
break;
default:
Response.ContentType = "image/jpeg";
break;
}
Response.BinaryWrite(buffer);
Các lỗi mà tôi nhận được là:
An invalid character was found in text content. Error processing resource 'http://DomainName/GetFile.aspx... PK
Bất kỳ lời đề nghị?
Đã thử điều này và nó tốt hơn một chút. Tôi ít nhất cũng nhận được hộp thoại mở/lưu/hủy. Tuy nhiên, nếu tôi nhấp vào mở trên một tập tin docx, tôi nhận được gì, nhưng một trang html trống. Nếu tôi nhấp vào lưu trên hộp thoại, lưu nó vào tập tin, sau đó mở nó, tôi nhấp qua một số thông báo lỗi và sau đó nhận được tập tin đúng. Đối với các tập tin xlsx, nếu tôi lưu sau đó mở, tôi nhận được điều tương tự như docx, tức là một vài thông báo lỗi sau đó nó sẽ mở ra. Tuy nhiên, nếu tôi nhấp vào mở trên tệp xlsx, tôi phải bấm qua một vài lỗi, sau đó excel mở ra, nhưng thay vì dữ liệu, tôi có trang đăng nhập của tôi – Kevin
Tôi đã thêm mã mẫu hoạt động. –
Điều đó đã xảy ra. Tại sao nó hoạt động như thế này và không phải là cách khác là vượt ra ngoài tôi, nhưng tôi quá bận rộn để chăm sóc vào lúc này. – Kevin