asp.net按路径把图片上传到sql数据库
我用的fileupload只能把图片上传到指定的文件夹。我想把路径上传到数据库。要怎么做。protected void Button3_Click1(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(this.FileUpload1.PostedFile.FileName.ToString()))
{
string filename = this.FileUpload1.PostedFile.FileName.Substring
(this.FileUpload1.PostedFile.FileName.LastIndexOf("\\") + 1);
filename = System.IO.Path.GetFileName(filename);
int index = filename.LastIndexOf(".");
string lastname = filename.Substring(index, filename.Length - index);
string newfile = DateTime.Now.ToString("yyyyMMddhhmmss") + lastname; //按时间改名
string filepath = "image/" + newfile;
FileUpload1.PostedFile.SaveAs(Server.MapPath(filepath)); //这个就是存到数据库的路径
}
String sql= "server=172.16.101.62;database=Flower;uid=SY;pwd=123";
SqlConnection sqlc = new SqlConnection(sql);
sqlc.Open();
SqlCommand Cmd = new SqlCommand();//写到这里就不会了。求教了。
} --------------------编程问答-------------------- 客户端的路径对于服务器毫无意义。
上传文件后记录下文件在服务器上的路径,比如你的filepath。
然后就是把这个变量写入数据库即可。 --------------------编程问答-------------------- 客户端路径?不好意思我还是新手。能说一下具体我要怎么做么? --------------------编程问答-------------------- SqlCommand Cmd = new SqlCommand();//写到这里就不会了。求教了。
Cmd.Connection=sqlc;
Cmd.CommandType = CommandType.Text;
Cmd.CommandText = "insert into tb(filepath) values('"+filepath +"')";
Cmd.ExecuteNonQuery(); --------------------编程问答-------------------- 如果不会向SQL Server写入数据,就以这个为题目去学习,不要纠结在“路径”这种概念上。 --------------------编程问答-------------------- 服务器无法引用本地物理地址 一般都是用那个swf组件上传的吧 --------------------编程问答-------------------- 猜测一下,你是想把图片存到数据库里,然后从数据库调用图片吧?因为不会把图片直接往数据库里存,所以想在数据库存个路径,然后在读取时设置image的url为服务器的存储路径,从而显示指定图片.那么首先你要确定数据表里有专门存储图片路径的字段,设为nvarchar类型.然后把你的filepath变量的值写入这个字段就行了.不知道你的数据库表结构,所以没法给你具体的sql语句.你可以参考下ado.net方面的资料.很简单的. --------------------编程问答--------------------
这这样就保存了图片的路径了,读时直接读取路径就行了。 --------------------编程问答--------------------
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="fulUploadImage" runat="server" Width="205px" />
<asp:Button ID="btnUpload" runat="server" Text="上传" onclick="btnUpload_Click"></asp:Button>
</div>
</form>
</body>
</html>
--------------------编程问答--------------------
protected void btnUpload_Click(object sender, EventArgs e)
{
string strLoadFileName = "";
if (LoadPicture(fulUploadImage, "upload/", this, 200, ref strLoadFileName))
{
//上传成功,可以将strLoadFileName取得文件名存入数据库
}
}
private bool LoadPicture(FileUpload fileUpload, string Url, Page page, int size, ref string newname)
{
if (fulUploadImage.HasFile)
{
if (fulUploadImage.PostedFile != null)
{
//以下判断图片的
try
{
System.Drawing.Image upImage = System.Drawing.Image.FromStream(fileUpload.PostedFile.InputStream);
Bitmap bm = new Bitmap(upImage);
}
catch
{
MessageBox.Show(page, "图片有问题!");
return false;
}
//以上判断图片的,和下面的有点重复
//下为判断是㫘是真图片
if (fileUpload.PostedFile.ContentType.ToString().IndexOf("image") < 0)
{
MessageBox.Show(page, "不要上传非法图片gif|jpg|jpeg|bmp!");
return false;
}
else
{
//上为判断是㫘是真图片
string filename;//文件名字
string hz;
filename = fileUpload.FileName;
//取后最
int pos = filename.IndexOf(".");
hz = filename.Substring((pos + 1)).ToLower();
if (hz != "gif" && hz != "jpg" && hz != "jpeg" && hz != "png" && hz != "bmp" || fileUpload.PostedFile.ContentLength > size * 1024)
{
MessageBox.Show(page, string.Format("图片格式不对或大小超过{0}K,请检查!", size));
return false;
}
else
{
newname = GetImageName() + "." + hz;
//保存图片
string pathurl;
pathurl = page.Server.MapPath("~") + "\\" + Url + "/\\" + newname;
string kb = fileUpload.FileContent.Length.ToString();
fileUpload.PostedFile.SaveAs(pathurl);
return true;
}
}
}
return true;
}
return true;
}
//产生图片随机名字
private string GetImageName()
{
string strname = null;
strname = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.TimeOfDay.Hours.ToString() + DateTime.Now.TimeOfDay.Minutes.ToString() + DateTime.Now.TimeOfDay.Milliseconds.ToString();
return strname;
}
/// <summary>
///
/// </summary>
/// <param name="fileUpload">FileUpload上传控件</param>
/// <param name="Url">上传路径</param>
/// <param name="page">Page</param>
/// <param name="size">上传文件大小</param>
/// <param name="newname">ref 文件名</param>
/// <returns>bool</returns>
private bool LoadPicture(FileUpload fileUpload, string Url, Page page, int size, ref string newname) --------------------编程问答-------------------- 你把filepath 保存到数据库中不就行了~! --------------------编程问答-------------------- 不防参考一下:
http://www.cnblogs.com/insus/archive/2013/02/05/2892678.html --------------------编程问答-------------------- 分两步:
一。把图片上传到网站的一个文件夹里
二。同时吧路径上传到数据库里(相对路径)路径做一下截取 --------------------编程问答-------------------- +1就是这么个思路
补充:.NET技术 , ASP.NET