请问高手一个上传图片的问题

chenquan4127 2009-06-19 08:20:00
ASP.NET
制作一个网站如何上传图片

我知道有2中方法
1是上传图片,然后把服务器图片存储地址存到数据库里
2.直接把图片以2禁止流存数据库。

请问
第一种方法如何上传图片并获取地址的?(如何读取我知道)

第二种方法如何把图片转化成2进制存放,并且如何读取?

数据库是ACCESS

感谢大家帮助了。。。。
...全文
40 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmaiC 2009-06-20
  • 打赏
  • 举报
回复
 if (lab_ts.Text == "图片上传成功!")
{
Lab_clue.Text = "请不要重复上传图片!";
return;
}
string fileName = FU_Picture.FileName;
string savaPath = Server.MapPath(@"~\images\zclogo\");
string typ = FU_Picture.PostedFile.ContentType.ToString();
string tyyp = typ.Substring(0, 5);
if (FU_Picture.HasFile)
{
if (tyyp == "image")
{
try
{
savaPath += fileName;
FU_Picture.SaveAs(savaPath);
Lab_Url.Text = "~/images/zclogo/" + fileName;
lab_ts.Text = "图片上传成功!";
Lab_clue.Text = "";
Ig_Picture.ImageUrl = Lab_Url.Text;
//FU_Picture.Dispose();
}
catch (Exception e1)
{
lab_ts.Text = "警告:图片上传失败!<br/>原因:" + e1.Message;
}
}
else
{
lab_ts.Text = "警告:不被允许的类型!";
FU_Picture.Focus();
}
}
else
{
lab_ts.Text = "警告:没有指定要上传的图片";
}
zhaojinffengg 2009-06-20
  • 打赏
  • 举报
回复
很好,我顶
chenquan4127 2009-06-20
  • 打赏
  • 举报
回复
代码不错呀。。不过能告诉我用了啥控件吗?
szldk 2009-06-19
  • 打赏
  • 举报
回复
关注
rjzou2006 2009-06-19
  • 打赏
  • 举报
回复
楼上很好,

1。就是上传图到到自己虚拟目录下。

存入数据库的相对路径。


2。使用的时候直接读取路径就可


吕津 2009-06-19
  • 打赏
  • 举报
回复
都是牛人!
dapanda010 2009-06-19
  • 打赏
  • 举报
回复
if(fileUp.Value=="")
{
Response.Write("<SCRIPT language='JavaScript'>alert('请选择上传文件本地路径');window.location.href='Uploadfile.aspx'; </SCRIPT>");

}
else
{
string FileName,FilePath,FileArea,FileCategory,FileExe;
if(tbRename.Text.Trim()!="")
{
FileName = tbRename.Text.Trim().ToString();//重命名
}
else
{
string[] FileArray;
FileArray = fileUp.PostedFile.FileName.ToString().Split('\\');
FileName = FileArray[FileArray.Length-1] ;//文件名
}
FilePath = "upload/"+ddlCategory.SelectedValue.ToString()+"/";//上传路径
FileArea = ddlCategory.SelectedValue.ToString();//文件所在文件夹
FileCategory=ddlCategory.SelectedValue.ToString();

FileExe = fileUp.PostedFile.FileName.Substring(fileUp.PostedFile.FileName.LastIndexOf("."));//扩展名

if(FileExe!=".exe")
{
SqlConnection cnn=new SqlConnection(this.GetConn());
string strSelect= "SELECT count(*) FROM files WHERE filename='"+ FileName +"' AND filearea='"+ FileArea +"' AND fileexe='"+ FileExe +"' ";
SqlCommand objCmd=new SqlCommand(strSelect,cnn);
objCmd.Connection.Open();
int flag=(int)objCmd.ExecuteScalar();
objCmd.Connection.Close();

if(flag==0)
{
if(tbRename.Text.Trim()!="")
{
fileUp.PostedFile.SaveAs(Server.MapPath(FilePath+FileName+FileExe));//上传文件
FileName = FileName +FileExe;
}
else
{
fileUp.PostedFile.SaveAs(Server.MapPath(FilePath+FileName));//上传文件
}

//写入数据库
string strInsert="INSERT INTO files(filename,filepath,filearea,fileexe,filecategory,addtime) values"+
" ('"+ FileName +"','"+ FilePath +"','"+ FileArea +"','"+ FileExe +"','"+ FileCategory +"','"+ System.DateTime.Now.ToString() +"')";
SqlCommand subcmd=new SqlCommand(strInsert,cnn);
subcmd.Connection.Open();
subcmd.ExecuteNonQuery ();
subcmd.Connection.Close();

Response.Write("<SCRIPT language='JavaScript'>alert('成功上传到"+ FilePath +",文件名为:"+ FileName +"');window.location.href='Uploadfile.aspx'; </SCRIPT>");
}
else
{
Response.Write("<SCRIPT language='JavaScript'>alert('目录"+ FilePath +"下已经存在文件:"+ FileName +"');window.location.href='Uploadfile.aspx'; </SCRIPT>");
}
}
else
{
Response.Write("<SCRIPT language='JavaScript'>alert('不允许上传"+ FileExe +"类型的文件');window.location.href='Uploadfile.aspx'; </SCRIPT>");

}
}
chengkouda 2009-06-19
  • 打赏
  • 举报
回复
应该可以结贴了
wuyq11 2009-06-19
  • 打赏
  • 举报
回复
string strMath=Server.MapPath("../Image/");
file1.PostedFile.SaveAs(strMath+file1.PostedFile.FileName.Substring(file1.PostedFile.FileName.LastIndexOf("\\")+1));
2

FileStream fs=new FileStream("a.bmp",FileMode.Open);
byte[] myImage=new byte[fs.Length];
fs.Read(myImage,0,myImage.Length);
fs.Close();
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=A.mdb";
OleDbConnection myConn=new OleDbConnection(strConn);
OleDbCommand myComm=new OleDbCommand();

myComm.CommandText="insert into TABLE (id,[image]) values (1,@image)";
myComm.Connection=myConn;
myComm.Parameters.Add("@image",OleDbType.Binary);
myComm.Parameters["@image"].Value=myImage;
myConn.Open();
try
{
myComm.ExecuteNonQuery();
}
catch(Exception e1)
{
Console.Write(e1.ToString());
}
finally
{
myConn.Close();
}


图片读取


string sql="select * from TABLE where id=1";
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=A.mdb";
OleDbConnection pubsConn=new OleDbConnection(strConn);

OleDbCommand logoCMD=new OleDbCommand(sql,pubsConn);

byte[] outbyte = new byte[10000];

pubsConn.Open();
OleDbDataReader myReader = logoCMD.ExecuteReader();

while(myReader.Read())
{
long retval = myReader.GetBytes(1, 0, outbyte, 0, 10000);
}
myReader.Close();
pubsConn.Close();
MemoryStream stmBLOBData = new MemoryStream(outbyte);
pictureBox1.Image= Image.FromStream(stmBLOBData);
老郭20130824 2009-06-19
  • 打赏
  • 举报
回复
第一种方法,上传时自定义名字,比如用日期,存放于单独的目录

数据库保存该自定义名字,地址就是网站根目录/存放目录/自定义名字
oec2003 2009-06-19
  • 打赏
  • 举报
回复
通常都是讲图片存放在一个目录下 数据库中存放的是图片的路径

62,253

社区成员

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

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

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

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