当前位置:编程学习 > C#/ASP.NET >>

ASP.NET 图片上传问题

下面代码是在新建项目里面做的上传图片
OpenFileDialog dialog = new OpenFileDialog();
dialog.InitialDirectory = @"C:\";
dialog.Filter = "GIF(*.gif)|*.gif|JPG(*jpg)|*.jpg";
if (dialog.ShowDialog() == DialogResult.OK)
{
FileStream stream = new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(stream);
//将二进制图片读至数组容器,进行整体上传。
byte[] photo = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();
//将二进制图片存放到数据库里。
string str = "server=(local);database=Students;Integrated Security=true;";
SqlConnection conn = new SqlConnection(str);
string sql = "insert into T_picture(ID,picture) values (@ID,@picture)";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@ID", this.textBox1.Text.Trim());
cmd.Parameters.Add("@picture", photo);
conn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("上传成功!");

但是在新建网页里写不出来前四行代码!
我刚找到用FileUpload控件 但是不会用
把上面代码改后运行结果是:
未能找到文件“D:\Microsoft Visual Studio 8\Common7\IDE\cy.jpg”。
cy图片明明是在桌面的啊!
请高手指点```````帮我把上面的代码修改成在新建网页中写出来 !在线等!谢谢
补充:能不能把上面的代码该成在网页里使用的用FileUpload写
		
答案:
OpenFileDialog 是winform编程里面的 web编程里面没有。
给你个实例。
aspx页面上放一个<asp:FileUpload ID="FileUpload1" runat="server" />和一个<asp:Button ID="Button7" runat="server" Text="上传照片" Height="20px" onclick="Button7_Click" />

这个aspx的cs代码里写关于Button7_Click的代码如下

string fileleixing = null;
fileleixing = System.IO.Path.GetExtension(FileUpload1.FileName).ToString();
if (FileUpload1.PostedFile.ContentLength > 204800) {
//提示用户文件只能在200k以内
//"只能上传jpg和gif格式,大小在200k以内"
return;
}
//只允许上传jpg和gif图片
if (fileleixing == ".jpg" | fileleixing == ".gif") {
//txt_ziwopingjia.Text = Server.MapPath(Request.ApplicationPath & "/userphoto/" & FileUpload1.FileName)
Random rmd = new Random();
string filepath = null;
filepath = System.DateTime.Now.ToString() + rmd.Next(1, 65535);
filepath = filepath.Replace(":", "").Replace(" ", "").Replace("-", "") + fileleixing;
//生成文件名
FileUpload1.SaveAs(Server.MapPath(Request.ApplicationPath + "/userphoto/" + filepath));
//上传文件到指定的目录
//上传文件成功
if (System.IO.File.Exists(Server.MapPath(Request.ApplicationPath + "/userphoto/") + filepath)) {
//更新个人数据库 和显示图片,这里的userphoto是个image控件
{
userphoto.ImageUrl = "../userphoto/" + filepath;
}
}
}
else {
//提示用户只能上传jpg和gif格式
}

如果放到IIS上,需要你的IIS帐户对要上传照片的目录具有写的权限。
答案补充
<asp:FileUpload控件和FileUpload基本是一样的 唯一的区别就是多了一个runat="server"
你用FileUpload然后加上runat="server"也是可以的。
答案补充
Server.MapPath(Request.ApplicationPath + "/userphoto/") + filepath这个就返回了上传成功后的图片路径,你只要@picture=Server.MapPath(Request.ApplicationPath + "/userphoto/") + filepath//这里是模拟,具体需要你另外定义@picture变量
string sql = "insert into T_picture(ID,picture) values (@ID,@picture)";
就可以了。
这样这条记录的图片地址就是你上传的图片地址了。使用的时候可以从数据库中提取出来。然后给一个image的图片路径指定这个地址就可以了。具体你可以调试一下,学会调试你会发现这些其实都很简单的。

上一个:asp 遍历数据库 判断结果
下一个:C# ASP.Net Cookie

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,