3

ASP.net WebフォームによってアップロードされたファイルをSQL Server 2005 varbinary(max)フィールドにどのように保存しますか?

これが私がこれまでに持っているものです:

protected void btnUpload_Click(object sender, EventArgs e)
{
    for (int i = 0; i < Request.Files.Count; i++)
    {
        StoreFile(Request.Files[i]);
    }
}

private void StoreFile(HttpPostedFile file)
{
    // what do i do now?
}

単純な古い ado.net の例が適しています。linq to sql の例も同様です。

ありがとう

4

4 に答える 4

3

4GuysFromRollaのデータベースにファイルを直接アップロードする方法についての素晴らしいチュートリアルがあります

于 2009-04-17T21:41:50.910 に答える
2

Linq To Sql を使用してこれを行う方法は次のとおりです。

FilesDataContext db = new FilesDataContext();

protected void btnUpload_Click(object sender, EventArgs e)
{
    for (int i = 0; i < Request.Files.Count; i++)
    {
        StoreFile(Request.Files[i]);
    }

    db.SubmitChanges();
}

private void StoreFile(HttpPostedFile file)
{
    byte[] data = new byte[file.ContentLength];
    file.InputStream.Read(data, 0, file.ContentLength);

    File f = new File();
    f.Data = data;
    f.Filename = file.FileName;
    db.Files.InsertOnSubmit(f);
}
于 2009-04-18T14:10:24.793 に答える
1

これは一般的に悪いフォームと見なされます。データベースが肥大化し、すべてのファイルをハード ドライブ フォルダーに保存し、ファイルの場所を DB に保存することに比べて、実際には何の利点もありません。これを実行してもよろしいですか?

于 2009-04-17T21:21:51.707 に答える