私はテーブルに画像をアップロードしようとしていますが、喜びはありません。 私はストアプロシージャを使用し、appsettingsの中で私の接続文字列を暗号化し、データレイヤーを使ってオブジェクトにアクセスしました。データベースに画像をアップロード
string FilePath = FileUpload1.PostedFile.FileName;
string FileName = Path.GetFileName(FilePath);
string ext = Path.GetExtension(FileName);
string ContentType = string.Empty;
switch (ext)
{
case ".jpg":
ContentType = "Image/jpg";
break;
case ".png":
ContentType = "Image/png";
break;
case ".gif":
ContentType = "Image/gif";
break;
}
if (ContentType != string.Empty)
{
Stream fs = FileUpload1.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
SqlCommand _SqlCom = new SqlCommand("sp_InsFoto");
_SqlCom.Parameters.Add("@imgName", SqlDbType.VarChar).Value = FileName;
_SqlCom.Parameters.Add("@Imgdata", SqlDbType.Binary).Value =bytes;
_SqlCom.Parameters.Add("@imgContentType", SqlDbType.VarChar).Value =ContentType;
obj.ExecuteNonQuery(ref _SqlCom);
そして、あなたのコード内のパラメータの名前が正確にそう@ImgName
と@imgContentType
への変更@imgName
次のコードでは、ストアドプロシージャで定義された名前と一致する必要があります
CREATE PROCEDURE [dbo].[sp_InsFoto]
(
@ImgName varchar(50)
,@ImgData varbinary(MAX)
,@ImgContentType varchar(50)
)
AS INSERT INTO tbl_Fotos
(
ImgName
,ImgData
,ImgContentType
)
VALUES
(
@ImgName
,@ImgData
,@ImgContentType
)
レスポンスありがとうございます、私はあなたが言ったように変更しましたが、go.ImgNameとImgContentTypeは保存されますが、ImgDataは保存されません。バイナリストリームにイメージを保存するための何かがある場合はお知らせください。 – Markiv