关于数据库保存上传文件路径问题-高分在线

xiaoxiaoxiao5 2007-09-24 05:06:10
我已经把文件上传到文件夹里files了:
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string FileName = FileUpload1.FileName;
string strExPrentFile = FileName.Substring(FileName.LastIndexOf(".") + 1);
string[] NoExPrentFile = new string[] { "exe", "asp", "php" };
bool IsUp = true;
for (int i = 0; i < NoExPrentFile.Length; i++)
{
if (strExPrentFile.Equals(NoExPrentFile[i]))
{
IsUp = false;
}
}
if (IsUp)
{

string sFilePath = string.Format("files/{0}.{1}", DateTime.Now.ToString("mmhhddss"), strExPrentFile);
FileUpload1.SaveAs(Server.MapPath(sFilePath));
this.Label1.Text = "文件上传成功!" + "<br />文件名是:" + string.Format("{0}.{1}", DateTime.Now.ToString("mmhhddss"), strExPrentFile) + "<br />文件的格式:" + strExPrentFile;
}
else
{
this.Label1.Text = string.Format("不允许上传{0}格式文件", NoExPrentFile);
}
}
else
{
this.Label1.Text = "不能上传空文件";
}
}
}
但我不知道怎么在数据库中保存上传文件的路径---怎么写代码呢。。要求详细。不能乱说。
数据库要写什么存储过程么
...全文
481 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaojing7 2007-12-20
  • 打赏
  • 举报
回复
Server.MapPath(string path);
path一定要正确,这里很容易出错的!慢慢调下
sunnystar365 2007-12-20
  • 打赏
  • 举报
回复
一个小建议:
1.我觉得只需要保存文件名就可以了,因为上传的文件的地址应该固定的,所以以后显示的时候只需要使用../等来控制路径。
2.如果把路径全部显示了,以后使用右键查看可能会知道你的文件在电脑里的具体位置,有安全隐患,因为你要传入图片应该会给那个文件夹写入权限的(当然这要看楼主保存的是什么路径了)。
3.如果要保存路径,可以把路径和文件名一起保存在同一个字段中,当然使用两个字段也可以,就是普通录入。
蝶恋花雨 2007-12-19
  • 打赏
  • 举报
回复
string imgurl = "ImageFiles/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + quanname;
imgurl 这个存在数据库就OK了
蝶恋花雨 2007-12-19
  • 打赏
  • 举报
回复
string test = Server.MapPath("ImageFiles/" + DateTime.Now.ToString("yyyy-MM-dd")); //用来生成文件夹
if (!Directory.Exists(test))
{
Directory.CreateDirectory(test);
}
if (FileUpload1.PostedFile.FileName != "")
{
string imgname = FileUpload1.PostedFile.FileName;
string imgType = imgname.Substring(imgname.LastIndexOf(".") + 1);
string quanname =DateTime.Now.ToString("yyyyMMddHHmmss")+imgname.LastIndexOf("\\")+"."+imgType ;
if ("gif" != imgType && "jpg" != imgType)
{
Response.Write("<script>alert('请选择gif,jpg格式的文件!');</script>");
return;
}

string imgurl = "ImageFiles/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + quanname;
FileUpload1.PostedFile.SaveAs(Server.MapPath(imgurl));
}
else
{
Response.Write("<script>alert('请选择文件上传!');</script>");
}
fjh525 2007-12-19
  • 打赏
  • 举报
回复
把文件路径存放到filePath里,
string filePath = "files/"+DateTime.Now.ToString( "mmhhddss ")+strExPrentFile
把文件上传到服务器的files文件夹里,
Server.MapPath(filePath);
把文件路径存放到数据库
string sql="insert into fileInfo(path) values(filePath)";
这样就会把文件存放到服务器,把文件在服务器上的路径存放到数据库里了.
huangfuhua 2007-12-19
  • 打赏
  • 举报
回复
liuyun1987 2007-09-24
  • 打赏
  • 举报
回复
在存储过程中定义一个变量,一个文件名(最好是带扩展名),在CS文件中调用这个存储过程传入这个参数即可,然后在CS中读取文件路径时和上传的文件路径一样。。Server.MapPath(string filePath)可获得。。
Cnaspnet 2007-09-24
  • 打赏
  • 举报
回复
在你数据库表里新增一个字段
IFileLink字段用来保存路径

然后把
cmd = new SqlCommand("insert into TListen(lName,lFileName,lLength,lSubmitDate) values('" + lName + "','" + operationFile + "','" + lLength + "','" + lSubmitDate + "')", con);
改为
cmd = new SqlCommand("insert into TListen(lName,lFileName,lLength,lSubmitDate,IFileLink) values('" + lName + "','" + operationFile + "','" + lLength + "','" + lSubmitDate + "','"+Server.MapPath(sFilePath)+"')", con);
liuyun1987 2007-09-24
  • 打赏
  • 举报
回复
Server.MapPath(string filePath);获得文件路径
lovefootball 2007-09-24
  • 打赏
  • 举报
回复
就是简单的把你保存的文件的路径保存到数据库就可以了
Server.MapPath(sFilePath)
这个字符串保存到你想要的地方
操作数据库自己参考MSDN

写SQL也行用存储过程也行
whgames_007 2007-09-24
  • 打赏
  • 举报
回复
up学习学习!!
m_forever 2007-09-24
  • 打赏
  • 举报
回复
string lName = TextlName.Text.Trim();
string fullFileName=FuListen.PostedFile.FileName;//文件全名
string FileExName = fullFileName.Substring(fullFileName.LastIndexOf(".") + 1).ToLower();//文件扩展名
int FileSize = FuListen.PostedFile.ContentLength;//文件长度
string FileType = FuListen.PostedFile.ContentType.ToLower();//文件类型
FileType = FileType.Substring(0,FileType.LastIndexOf("/"));
string lLength = TextlLength.Text.Trim();
string lSubmitDate = TextlDate.Text.Trim();
//文件长度超过提示,10M限制
if (FileSize > 10485760)
{
cmd.Dispose();
con.Close();
Response.Write("<script language='javascript'>alert('文件长度不能超多10M);location.href=('Admin_Listen.Aspx');</script>");
return;
}
//文件格式错误提示
if (FileType != "audio")
{
cmd.Dispose();
con.Close();
Response.Write("<script language='javascript'>alert('上传失败,文件类型只能音频文件');location.href=('Admin_Listen.Aspx');</script>");
return;
}
//文件格式正确
else
{
string operationFolder = Server.MapPath("../Listens");//文件放置目录
string operationFile = Convert.ToDateTime(lSubmitDate).ToShortDateString() + "." + FileExName;//放置文件名
//文件夹是否存在
if (Directory.Exists(operationFolder))
{
//文件存在
if (File.Exists(operationFolder + "\\" + operationFile))
{
Response.Write("<script language='javascript'>alert('上传失败,今日听力您已经上传,敬请查看');location.href=('Admin_Listen.Aspx');</script>");
cmd.Dispose();
con.Close();
return;
}
//文件不存在
else
{
this.FuListen.PostedFile.SaveAs(operationFolder + "\\" + operationFile);
cmd = new SqlCommand("insert into TListen(lName,lFileName,lLength,lSubmitDate) values('" + lName + "','" + operationFile + "','" + lLength + "','" + lSubmitDate + "')", con);
cmd.ExecuteNonQuery();
cmd.Dispose();
con.Close();
Response.Write("<script language='javascript'>alert('上传成功,请返回查看.');location.href=('Admin_Listen.Aspx');</script>");
}
}
//文件夹不存在
else
{
cmd.Dispose();
con.Close();
Response.Write("<script language='javascript'>alert('注意:文件夹不存在,请在根目录下创建名为Listens的文件夹,并使其拥有写入权限');;location.href=('Admin_Listen.Aspx');</script>");
return;
}

这个是一个以前写过的听力上传,希望对你有些帮助吧

62,243

社区成员

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

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

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

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