我是一个学生。老师让做一个能聊天的软件。
我在做头像那里有个思路。求各位高手帮忙。
头像全部由用户自主上传。上传的头像按照上传顺序自动添加到我的数据库中的头像ID编号内。
所上传的头像自动保存在我服务器hard image文件夹中。
所有使用的用户可以使用以前用户所上传过的头像。借助用户使用。来扩大自己在头像库中的数量。。
求解!谢谢。
我在做头像那里有个思路。求各位高手帮忙。
头像全部由用户自主上传。上传的头像按照上传顺序自动添加到我的数据库中的头像ID编号内。
所上传的头像自动保存在我服务器hard image文件夹中。
所有使用的用户可以使用以前用户所上传过的头像。借助用户使用。来扩大自己在头像库中的数量。。
求解!谢谢。
在sqlserver里的数据类型为image
在C#中的数据类型为byte[]下面是我自己做过的存取图像二进制数据代码
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "*jpg|*.jpg|*bmp|*.bmp|*gif|*.gif";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string fullpath = openFileDialog1.FileName;//获取文件对话框中选定的文件名的字符串,包括文件路径
FileStream fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read);
byte[] imagebytes = new byte[fs.Length];//fs.Length文件流的长度,用字节表示
BinaryReader br = new BinaryReader(fs);//二进制文件读取器
imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));//从当前流中将count个字节读入字节数组中
SqlConnection conn = new SqlConnection("server=.\\sqlexpress;initial catalog=MyDb;integrated security=true");
conn.Open();
SqlCommand cmd = new SqlCommand("insert into MyPhoto values(@id,@Image)", conn);
cmd.Parameters.Add("@id", SqlDbType.Int, 4);
cmd.Parameters.Add("@Image", SqlDbType.Image);
cmd.Parameters["@id"].Value = 1;
cmd.Parameters["@Image"].Value = imagebytes;
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("图片上传成功");
}
}