求图片上传数据库代码

麦子的春天到了 2011-03-23 10:18:02
完整代码.net08前台以及后台(有标注),现有图片一堆,需要存到数据库,数据库弄好了,img字段,不懂怎么存图片进去,急求代码,aspx页面。谢谢!
...全文
93 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeepMoving 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wxr0323 的回复:]

二进制图片存取
C# code
if (this.FileUpload1.HasFile)
{
string strPath = FileUpload1.FileName;
try
{
string extension = Path.GetExtension(File1.PostedFile.FileName).ToUpper();
string fileName =……
[/Quote]
++
liufei19880218 2011-03-23
  • 打赏
  • 举报
回复
<tr>
<td align="right" style="text-align: right; width: 135px;">
图片上传:</td>
<td align="left" style="width: 228px">
<asp:FileUpload ID="FileUpload4" runat="server" />
<input id="Txt_Sell" runat="server" class="txt" maxlength="50" tabindex="4" type="text" visible="false" /></td>
</tr>

//上传文件处理
private void UPFile(string time)
{
string FilePath = Server.MapPath("./") + "File";
HttpFileCollection HFC = HttpContext.Current.Request.Files;
for (int i = 0; i < HFC.Count; i++)
{
HttpPostedFile HF = HFC[i];
if (HFC[i].ContentLength > 0 && HFC[i].FileName != "")
{
//HF.SaveAs(FilePath + "//" + System.IO.Path.GetFileName(HF.FileName));
string FName = HFC[i].FileName.Substring(HFC[i].FileName.LastIndexOf("."));
HF.SaveAs(FilePath + "//" + Convert.ToString(Convert.ToInt64(time) + i) + FName);//更改文件名
}
}
}
子夜__ 2011-03-23
  • 打赏
  • 举报
回复
二进制图片存取
if (this.FileUpload1.HasFile)
{
string strPath = FileUpload1.FileName;
try
{
string extension = Path.GetExtension(File1.PostedFile.FileName).ToUpper();
string fileName = DateTime.Now.ToString("yyyyMMddhhmmss");
strPath = strPath.Substring(strPath.LastIndexOf("\\") + 1);
FileUpload1.SaveAs.SaveAs(Server.MapPath("../UploadFile/")+fileName + extension);
strPath = fileName + extension;
using(SqlConnection conn =new SqlConnection(""))
{
conn .Open();
string sql = "";
SqlCommand cmd = new SqlCommand(sql, conn );
cmd.ExecuteNonQuery();
conn.Close();
}

}
catch()
{
}
}
// 一般保存路径二进制使用
Stream s = FileUpload1.PostedFile.InputStream;
Byte[] buffer= new Byte[FileUpload1.PostedFile.ContentLength];
s.Read(buffer,0,FileUpload1.PostedFile.ContentLength);
string strsql = "insert into Tempimage(images,names)values(@ImageData,@names)";
SqlCommand cmd= new SqlCommand(strsql, conn);
cmd.Parameters.Add("@ImageData", SqlDbType.Image);
cmd.Parameters.Add("@names", SqlDbType.VarChar);
cmd.Parameters["@ImageData"].Value = buffer;
cmd.Parameters["@names"].Value = "";
cmd.ExecuteNonQuery();

//显示
Image1.ImageUrl="Photo.aspx?id="+Request.QueryString["id"];
photo.aspx
int Id=Request.QueryString["id"]==null?0:int.Parse(Request.QueryString["id"].ToString());
using(SqlConnection conn=new SqlConnection())
{
conn.ConnectionString="";
string strSql="select * from A where Id='"+Id+"'";
SqlCommand cmd=new SqlCommand(strSql,conn) ;
conn.Open();
SqlDataReader reader=cmd.ExecuteReader();
if(reader.Read())
{
Response.ContentType = "application/octet-stream";
Response.BinaryWrite((Byte[])reader["Photo"]);
}
Response.End();
}
  • 打赏
  • 举报
回复
C# 谢谢 上面的完全不懂
wlf535944903 2011-03-23
  • 打赏
  • 举报
回复
本质就是 把图片转换成二进制数据就可以存到数据库了~
wlf535944903 2011-03-23
  • 打赏
  • 举报
回复


Stream ms;
byte[] picbyte;
OpenFileDialog ofdSelectPic = new OpenFileDialog();
if (ofdSelectPic.ShowDialog() == DialogResult.OK)
{
if ((ms = ofdSelectPic.OpenFile()) != null)
{
picbyte = new byte[ms.Length];
ms.Position = 0;
ms.Read(picbyte, 0, Convert.ToInt32(ms.Length));


SqlConnection conn = new SqlConnection();
conn.ConnectionString = "";

sql = "Insert into Person(Photo) values(@Image)";
SqlCommand cmd = new SqlCommand(sql, conn);

cmd.Parameters.Add("@Image", SqlDbType.VarBinary);
cmd.Parameters["@Image"].Value = picbyte;

conn.Open();
cmd.ExecuteNonQuery();
conn.Close();

ms.Close();
}
}

SqlConnection conn=new SqlConnection();
conn.ConnectionString="";
string strSql="";
SqlCommand cmd=new SqlCommand(strSql,conn);
conn.Open();
SqlDataReader reader=cmd.ExecuteReader();
reader.Read();
MemoryStream ms=new MemoryStream((byte[])reader["Photo"]);
Image image=Image.FromStream(ms,true);
reader.Close();
conn.Close();
picturebox1.Image=image;


FileStream mystream=new FileStream("D:\\A.jpg",FileMode.Open,FileAccess.Read);
long len=mystream.Length;
mycmd.Parameters.Add("@image",SqlDbType.Image,(int)len,"picture");
mycmd.Parameters["@image"].Direction=System.Data.ParameterDirection.Input;
byte []box=new byte[len];
mystream.Read(box,0,(int)len);
mycmd.Parameters["@image"].Value=box;


  • 打赏
  • 举报
回复
byte[] buffer = imageFile.FileData.get_BinaryData() as byte[];

buffer 就可以插入数据库了。数据库对应应该是Binary或者Blob或者Image类型的字段。
下面红色部分换成你的buffer。

using (var conn = new OleDbConnection(strConn))
{
var comm = new OleDbCommand();
comm.Connection = conn;
comm.CommandText = "insert into images (FileName, Data) values (?, ?)";
var p1 = new OleDbParameter();
p1.DbType = DbType.String;
p1.Value = Path.GetFileName(file);
comm.Parameters.Add(p1);
var p2 = new OleDbParameter();
p2.DbType = DbType.Binary;
p2.Value = File.ReadAllBytes(file);
comm.Parameters.Add(p2);

conn.Open();
comm.ExecuteNonQuery();
MessageBox.Show("Insert Successfully");
}
2楼 您的代码我还是看不懂 http://topic.csdn.net/u/20110322/21/81e36415-7c88-4976-86d1-bebff7e6cb90.html
porschev 2011-03-23
  • 打赏
  • 举报
回复
img字段 是什么类型的啊?

  • 打赏
  • 举报
回复
初学,求前台后台一起……
lester19872007 2011-03-23
  • 打赏
  • 举报
回复
把图片转换成二进制数据就可以存到数据库了!

cm_boy 2011-03-23
  • 打赏
  • 举报
回复
只上传图片到文件夹,数据库存图片名称
  • 打赏
  • 举报
回复
谢谢各位!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧