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

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 = "不能上传空文件";
}
}
}
但我不知道怎么在数据库中保存上传文件的路径---怎么写代码呢。。要求详细。不能乱说。
数据库要写什么存储过程么
...全文
492 12 打赏 收藏 转发到动态 举报
写回复
用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;
}

这个是一个以前写过的听力上传,希望对你有些帮助吧
【资源介绍】 基于HAM10000数据集实现皮肤癌分类python源码+使用说明.zip 这是一个用于训练图像分类模型的代码。在运行代码之前,用户需要安装以下依赖库:argparse, os, pandas, numpy, PIL, datasets, torchvision, tqdm和transformers。用户还需要从Hugging Face上下载所需的预训练模型。 参数说明 - `--metadata_path`:metadata文件的路径。默认为"./archive/HAM10000_metadata.csv"。 - `--images_dir`:图像文件夹的路径。默认为"./archive/HAM10000_images/"。 - `--model_dir`:预训练模型的路径。默认为"../model/vit-large-patch16-224-in21k"。 - `--checkpoints_dir`:保存检查点文件的文件夹路径。默认为"./checkpoints"。 - `--learning_rate`:学习率。默认为1e-5。 - `--batch_size`:批大小。默认为64。 - `--epochs`:训练轮数。默认为5。 - `--warmup_ratio`:预热步骤的比例。默认为0.1。 - `--split`:训练-验证数据集的分割比例。默认为0.8。 - `--gpu`:指定使用哪张GPU。默认为"0"。 - `--logging_steps`:每隔多少步记录一次训练日志。默认为50。 用户可以在命令行中传递这些参数,例如: ```shell python train-hf.py --metadata_path ./archive/HAM4000_metadata.csv \ --images_dir ./archive/HAM10000_images/ \ --checkpoints_dir ./checkpoints \ --learning_rate 1e-4 \ --batch_size 64 \ --epochs 20 \ --warmup_ratio 0.1 \ --model_dir ../model/vit-large-patch16-224-in21k \ --gpu 5,6,7 \ --logging_steps 1 ``` 在代码运行过程中,会执行以下步骤: 1. 读取metadata文件,获取图像文件名和标签。 2. 将图像读入内存,并随机打乱。 3. 将数据集划分为训练集和验证集。 4. 对图像进行预处理,包括随机裁剪、归一化和转换为tensor。 5. 加载预训练模型,构建分类器。 6. 训练模型,并在验证集上评估模型性能。 7. 在训练过程中,每隔logging_steps步记录一次训练日志,包括损失值、准确率等指标。 8. 在训练结束后,保存模型的权重文件到checkpoints_dir文件夹中。 【备注】 该项目是个人毕设/课设/大作业项目,代码都经过本地调试测试,功能ok才上传,高分作品,可快速上手运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载使用,也欢迎交流学习!

62,253

社区成员

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

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

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

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