1

就我而言,我想构建自己的“投递箱”,例如我将用作另一个项目的一部分的应用程序。说明:当在“drop box”文件夹中打开一个word文件时(在文件更改的文件夹内,文件创建删除等被识别)。图片、txt、txt 更新上传到服务器没有任何问题。但是当涉及到办公文件时。上传办公文件创建。

问题:打开word文件时,做一些更新并保存。由于权限错误,文件无法上传。即使打开的文件也不能复制到另一个地方然后上传。任何人都面临过这种问题,以及任何建议。但是我们可以手动将打开并保存(但未关闭)的文件复制并保存到另一个位置

但在节目中是不允许的。

4

2 回答 2

3

您可以创建另一个文件副本,这很重要,因为上传速度可能较慢,读取共享文件可能会导致 Word 冲突,所以您可以做的是,您可以在临时文件上快速创建副本并上传临时文件。

string tmp = Path.GetTempFileName();

using(Stream s = new FileStream(filePath,
    FileMode.Open, FileAccess.Read,
    // following option will let you open
    // opened file by other process
    FileShare.ReadWrite)){

   using(FileStream fs = File.OpenWrite(tmp)){
      // this will copy file to tmp
      s.CopyTo(fs);
   }

}

// upload  tmp  file...
于 2012-06-19T07:43:41.073 回答
1

您的问题与我们面临的问题相似。在我们的例子中,我们都连接到域目录,问题是我们服务器上安装的防病毒软件为用户提供了读/写权限(执行 exe、安装应用程序)。因此,您特别需要授予用户执行想要使用另一个应用程序的应用程序的权利,在这种情况下是 office docs。该问题扩展到使用 Crystal Reports 的 asp 应用程序。希望能帮助到你。

于 2012-06-19T05:39:23.180 回答