3

varbinary(max)使用下面的 C# 代码将 .doc 文件保存到 SQL Server 数据库。

我可以保存文件,但是当我取回文件并想在网页上显示内容时,我的代码正在下载文件,我对如何处理它感到非常困惑。

我正在寻找的确切功能是naukri.com上传简历并提供预览的方式。我的代码是:

byte[] fileContent = new byte[fuResume.PostedFile.ContentLength];
fuResume.PostedFile.InputStream.Read(fileContent, 0, fuResume.PostedFile.ContentLength);
//lblAppliedMessage.Text = ByteArrayToString(fileContent);

//lblAppliedMessage.Text = BitConverter.ToString(fileContent).Replace("-", string.Empty);
byte[] btYourDoc;
btYourDoc = fileContent;

Response.ContentType = "application/ms-word";
Response.AddHeader("Content-Disposition", "inline;filename=yourfilename.doc");
Response.OutputStream.Write(btYourDoc, 0, fileContent.Length);

Response.BinaryWrite(btYourDoc);

Response.End();
4

3 回答 3

2

您的文件被下载而不是显示的原因是因为您将内容类型设置为 application/ms-word。这告诉浏览器下载文件(它们不能本地处理该类型的文件,因此它们委托给外部应用程序)。

您需要知道如何解释 MS Word 格式并将其转换为可在浏览器中查看的代码(HTML、某种为您执行此操作的插件等)。保存原始 Word 文档,然后以相同的状态将其发送回客户端基本上只是让他们下载 Word 文件。

于 2011-11-30T22:01:23.477 回答
0

斯奎尔曼是对的。有大量第三方组件可以进行 Word -> HTML 转换。

另一种可能更适合 Intranet 站点的选项是在服务器上安装 Word。

一个例子在这里:

http://www.c-sharpcorner.com/UploadFile/munnamax/WordToHtml03252007065157AM/WordToHtml.aspx

实际上,文档被打开,保存为 HTML,然后后续请求可以检索文件的 HTML 版本以进行预览。

Office automation server side has many pitfalls, however - see http://support.microsoft.com/kb/257757 for more information.

于 2011-11-30T22:10:02.490 回答
0

Here's a good one where the end result it's up to the user whether to download or view the file here's the link but @Squillman is right by putting the Response headers you're telling it to download.

于 2011-11-30T22:33:22.887 回答