【问题标题】:Save MS Office files stored in SQL Server directly to server directory with ASP.Net使用 ASP.Net 将存储在 SQL Server 中的 MS Office 文件直接保存到服务器目录
【发布时间】:2009-10-20 14:55:35
【问题描述】:

我在 SQL Server 中存储 MS Office 文件,如 PowerPoint(.ppt、.pptx)和 Word(.doc、.docx),需要通过 ASP 将这些文件保存到服务器上的临时文件目录。网申请。我从数据库中获取文件并作为字节数组进入应用程序。但我不知道如何将字节数组保存为指定目录位置中适当格式(.ppt/.pptx 等)的文件。

我知道我可以使用将 Response.ContentType 设置为“application/ms-word”之类的代码,然后将 Response.AddHeader 的“content-disposition”设置为“attachment”。但是,这会打开一个“另存为”对话框。我需要做的是将文件直接保存到服务器上的一个目录中(以便我可以对其进行一些进一步的操作)。

【问题讨论】:

    标签: asp.net sql-server ms-word powerpoint


    【解决方案1】:

    你只需要这个:

    File.WriteAllBytes(
         Path.Combine(Server.MapPath("/temp_folder"), "YourFileName.ext"),
         yourByteArray);
    

    【讨论】:

    • 虽然我对此表示赞同,但我是否可以建议 Server.MapPath("/") 是,呃,也许不是放置这种性质文件的正确位置?如上所述 - 但将 Server.MapPath 位替换为更合适的“指定目录位置”
    • @Rubens Farias:非常感谢你的建议——我会试试这个。我需要放置在一个临时文件夹中,以便我可以添加应用程序生成的各种内容(图像和文本)。然后该文件将被保存回数据库,或通过其他一些过程可供下载)。我假设您不能直接使用办公文档(2007 年之前的格式),但您需要保存它,打开办公应用程序的实例,然后对文件执行各种 VBA 样式的操作(以及这些行:support.microsoft.com/kb/222929/)
    • @Murph,好吧,我们需要留在网站 vdir 中;当然,Proposition Joe 会将其保存在更好的位置。为您的 cmets 加油!
    • @Joe,即使使用 2007 年以前的格式,您也可以将 Office 文档保存为 XML,但处理起来有点棘手;您可能知道 MS 不建议在网络服务器上安装 Office
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多