图片上传如何获取它的相对路径?

wzwen 2008-02-21 06:54:34


图片上传如何获取它的相对路径?



图片上传到服务器之后,获取它的相对路径之后写入到数据库wyx_info表里的wyx_img列

因为我想弄一个产品发布系统,肯定要上传产品的图片,将来前台显示产品时要调用图片的路径,所以只能是相对的

下面是一个简单的图片上传页面,现在传入表里的是服务器端路径,也就是进入数据库里成了“f:\**\01.jpg”等


问题一:

图片上传如何获取它的相对路径?


问题二:

如何让上传的图片以年月日的形式自动命名?因为考虑到实际应用当中有很多的产品图片是中文,所以必须在上传时进行自动转化





前台代码:

<form id="form1" runat="server">
<div>
<br />
<asp:FileUpload ID="FileUpload1" runat="server" /><br />
 <br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label><br />
<br />
<asp:Button ID="button1" runat="server" Text="确定" OnClick="button1_Click" /> </div>
</form>


后台代码:


protected void Page_Load(object sender, EventArgs e)
{

}
protected void button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string fileContentType = FileUpload1.PostedFile.ContentType;


if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
{
string name = FileUpload1.PostedFile.FileName; // 客户端文件路径
FileInfo file = new FileInfo(name);
string fileName = file.Name; // 文件名称
string webFilePath = Server.MapPath("upfile/" + fileName); // 服务器端文件路径


if (!File.Exists(webFilePath))
{
try
{
FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件
Label1.Text = "提示:文件“" + fileName + "”成功上传,文件类型为:" + FileUpload1.PostedFile.ContentType + ",文件大小为:" + FileUpload1.PostedFile.ContentLength + "B";
Socut.Data.ExecuteNonQuery("INSERT INTO wyx_info (wyx_img) VALUES ('"+webFilePath+"')");
}
catch (Exception ex)
{
Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
}
}
else
{
Label1.Text = "提示:文件已经存在,请重命名后上传";
}
}
else
{
Response.Write("<script>alert('提示:文件类型不符')</script>");

}
}

}
...全文
983 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvjie717 2008-02-22
  • 打赏
  • 举报
回复
直接放文件名和后缀 以后维护会非常方便
比如你的图片文件夹改名或移动位置,只需要改程序里一段代码就行了,否则得去改动数据库
wzwen 2008-02-22
  • 打赏
  • 举报
回复
lvjie717 :嗯,我看了几个别人的数据库,里面好像也都是直接保存图片的文件名和后缀

看来这种存储方法有它的道理
lvjie717 2008-02-22
  • 打赏
  • 举报
回复
建议只将图片的文件名和后缀存入数据库 不要存什么路径在里面
比如数据库里就放XXX.jpg这样的格式
程序里调用时再用代码去加上他的路径来显示图片

想在数据库里存相对路径的话写数据库时要加上Server.MapPath("图片相对路径")
wzwen 2008-02-22
  • 打赏
  • 举报
回复
这样啊,回去测试……


阿非 2008-02-21
  • 打赏
  • 举报
回复
Q:图片上传如何获取它的相对路径?如何让上传的图片以年月日的形式自动命名?
A:


//上传的图片以年月日的形式自动命名,年月日的话会导致一天只能上传一个文件
string fileName = DateTime.Today.Year.ToString() + DateTime.Today.Month.ToString() + DateTime.Today.Day.ToString() + DateTime.Today.Hour.ToString() + DateTime.Today.Minute.ToString() + DateTime.Today.Second.ToString();


Socut.Data.ExecuteNonQuery("INSERT INTO wyx_info (wyx_img) VALUES ('upfile\"+fileName+"')");

62,052

社区成员

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

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

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

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