1

私の場合、別のプロジェクトの一部として使用するアプリケーションのような独自の「ドロップボックス」を作成したいと思います。説明:「ドロップボックス」フォルダ(ファイルが変更されたフォルダ内)でワードファイルを開くと、ファイルの作成、削除などが識別されます。写真、txt、txtの更新は問題なくサーバーにアップロードされます。しかし、オフィス文書に関しては。オフィスドキュメントの作成がアップロードされます。

問題:単語ファイルを開いたときに、更新して保存します。許可エラーのため、ファイルをアップロードできません。開いたファイルでさえ、別の場所にコピーしてアップロードすることはできません。誰もがこの種の問題とあらゆる推測に直面しました。ただし、開いて保存した(ただし閉じていない)別の場所に手動でコピーして保存することはできます

しかし、プログラムでは許可されていません。

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の実行、アプリのインストール)。そのため、特に、別のアプリ(この場合はオフィスドキュメント)を使用したいアプリを実行する権利をユーザーに与える必要があります。問題は、CrystalReportsを使用するaspアプリにまで及びました。それが役に立てば幸い。

于 2012-06-19T05:39:23.180 に答える