1

私はサーバー/クライアント アプリケーションで作業しています。このアプリケーションでは、クライアントがファイルをアップロード/ダウンロードできます。ファイルは、SQL サーバー (2012) に varbinay(max) として保存されます。問題は、パス パラメーターのみを受け入れる ReadAllBytes メソッドを使用して、サーバーのハード ドライブにファイルを保存せずに、ファイルをデータベースに直接アップロードすることです。

サーバー側で使用されるコードの一部を次に示します。

HttpPostedFile file1 = context.Request.Files[0];
            byte[] buffer = new byte[file1.ContentLength];
            file1.InputStream.Read(buffer, 0, file1.ContentLength);
            

データベース内のデータからファイルに書き込むためのコード ユーザーは次のとおりです。

foreach (var file in list)
{
    System.IO.File.WriteAllBytes(path + file.FileName, file.FileContents);
}
4

1 に答える 1

1

にはHttpPostedFile、読み取り可能な入力ストリームが付属しています。それをバイト配列に読み取ってから、データベースに格納します。または、データベース インターフェイス (EF の場合、これはほとんどありません) がストリームを直接受け入れる場合は、そのまま入れてください。

ASP.NET (または IIS でしたか?) は、アップロードされたファイルが非常に大きい場合、一時的にディスクに保存する場合があることに注意してください。

于 2012-12-31T12:29:58.410 に答える