ご挨拶!
サポートしているシステムに問題があります。ユーザーが履歴書をデータベース (MS SQL Server 2005) にアップロードできるシナリオがあり、アプリケーションはこれらのドキュメントを varbinary 列を持つテーブルに格納する必要があると判断されました。インターネットで見つけた多くの例を試しましたが、アプリケーションが Microsoft Word ドキュメント (.doc) からバイトを保存しない理由がわかりません。より新しいバージョン (.docx または xlsx) または .txt を保存しようとすると、機能は完全に機能します。
同じ列にpdfファイルも保存しようとしましたが、うまくいきませんでした。ドキュメント形式の何かだと思いますが、わかりません
皆さん、助けていただけませんか。私は必死に1つの解決策を探しています。
テーブル用に作成したスクリプトは次のとおりです。
CREATE TABLE [dbo].[resumes](
[id_professional] [int] NOT NULL,
[professional_name] [varchar](50) NULL,
[file_type] [varchar](50) NULL,
[data] [varbinary](max) NULL,
CONSTRAINT [PK_resumes] PRIMARY KEY CLUSTERED
(
id_professional] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
そして、これが私がそれを機能させようとしているコードです:
foreach (string upload in Request.Files)
{
//create byte array of size equal to file input stream
byte[] fileData = new byte[Request.Files[upload].InputStream.Length];
//add file input stream into byte array
Request.Files[upload].InputStream.Read(fileData, 0,
Convert.ToInt32(Request.Files[upload].InputStream.Length));
//create system.data.linq object using byte array
System.Data.Linq.Binary binaryFile = new System.Data.Linq.Binary(fileData);
Resume objResume = new Resume()
objResume.data= binaryFile;
ResumeDAO.Save(objResume);
}
ちなみに、このアプリケーションでは linq to sql を使用しています。