0

データベースからドキュメントをダウンロード中に問題が発生しました。

現在、私は ASP.net プロジェクトに取り組んでおり、これが私の最初のキャリア プロジェクトです。データベースに保存するドキュメントがいくつかあります。ドキュメント(.pdf、.doc、.png、.docx、xls、xlsx)は、タイプを指定してバイナリ形式で保存されます。

Response.write を使用して 1 つのドキュメントをダウンロードできます。しかし今、いくつかのドキュメントを連結し、ユーザーがボタンをクリックしてダウンロードできるようにする必要があります。

私はたくさんグーグルで検索しました。開発者は、これは不可能だと言っています。しかし、それでも私はこれができると感じています。

ただし、これが不可能な場合は、これらの個々のドキュメントを最初にサーバーの場所に保存してから、圧縮してからユーザーがダウンロードできるようにすることを考えました。しかし、サーバーの場所で個々のドキュメントを元の形式で保存するにはどうすればよいでしょうか。

私を助けてください。私は大きな問題を抱えています。

4

1 に答える 1

0

データベースから複数のドキュメントを読み取り、zip ファイルを応答ストリームに提示する前にそれらを圧縮することは不可能ではありません。これはすべてプロセス内で行うことができ、ドキュメントをサーバーに保存する必要はありません。

このコードはIonic.Zip、いくつかのファイルを圧縮して次のファイルに書き込むために使用しMemoryStreamます。

foreach (var file in files)
{
    zipFile.AddEntry(file.FileName, file.ContentBytes);  // these are the file bytes
}
var zipMs = new MemoryStream();
zipFile.Save(zipMs);
zipMs.Seek(0, SeekOrigin.Begin);
zipMs.Flush();

にはドキュメントのfile.FileName拡張子 (.docx) が含まれており、ブラウザーからダウンロードすると、すべてが正しく表示され、保存されます。

于 2013-06-14T09:32:50.393 に答える