如何处理上传文件

crespo11123 2011-06-14 09:01:05
对于上传文件,我是将文件上传后在数据库的文件数据表中保存服务器端的文件路径,在一个专门的目录中保存文件,然后在页面提交时再修改文件的父ID来链接文件数据表和相应的贴子的数据表ID,由于在页面提交之前就已经把文件上传到服务器,有没有什么办法使文件在页面提交时一起上传(本人只用了一个fileupload控件,因为不确定上传文件有多少),页面撤消时文件因为没有上传就撤消了,不用还在在服务器端进行删除。
...全文
69 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
erke0921 2011-06-17
  • 打赏
  • 举报
回复
//判断是否上传了文件
if (fileUpload.HasFile)
{
//指定上传文件在服务器上的保存路径
string savePath = Server.MapPath("~/upload/");
//检查服务器上是否存在这个物理路径,如果不存在则创建
if (!System.IO.Directory.Exists(savePath))
{
//需要注意的是,需要对这个物理路径有足够的权限,否则会报错
//另外,这个路径应该是在网站之下,而将网站部署在C盘却把上传文件保存在D盘
System.IO.Directory.CreateDirectory(savePath);
}
savePath = savePath + "\\" + fileUpload.FileName;
fileUpload.SaveAs(savePath);
//保存文件
//不过需要注意的是,在客户端访问却需要指定的是URL地址,而不是在服务器上的物理地址
literal.Text = string.Format("../upload/{0}", fileUpload.FileName);
}
porschev 2011-06-14
  • 打赏
  • 举报
回复

先不上传。。。只把路径存下来。

点确定。。提交信息时。。。再把东西上传。。。
躲奶 2011-06-14
  • 打赏
  • 举报
回复
方法1,用户打开编辑页面时给页面分配一个操作ID,然后上传图片的时候把图片保存在与操作ID关联的Session中,如果用户提交就操作session列表里的图片,但这个并不推荐,推荐使用方法2

方法2,要上传多图时动态添加fileupload

<html>
</head>
<script language="javascript" type="text/ecmascript">
//======================
//功能:在表单中input file控件
//参数:parentID---要插入input file控件的父元素ID
// inputID----input file控件的ID
//======================
function createInput(parentID, inputFileID) {
var parent = $(parentID); //获取父元素

var div = document.createElement("div"); //创建一个div容器用于包含input file
var x = parseInt(Math.random() * (80 - 1)) + 1;
var divName = inputFileID + x.toString(); //随机div容器的名称
div.name = divName;
div.id = divName;

var aElement = document.createElement("input"); //创建input
aElement.name = inputFileID;
aElement.id = inputFileID;
aElement.type = "file"; //设置类型为file

var delBtn = document.createElement("input"); //再创建一个用于删除input file的Button
delBtn.type = "button";
delBtn.value = "删除";
delBtn.onclick = function () { removeInput(parentID, divName) }; //为button设置onclick方法

div.appendChild(aElement); //将input file加入div容器
div.appendChild(delBtn); //将删除按钮加入div容器
parent.appendChild(div); //将div容器加入父元素
}
//============================
//功能:删除一个包含input file的div 容器
//参数:parentID---input file控件的父元素ID
// DelDivID----个包含input file的div 容器ID
//============================
function removeInput(parentID, DelDivID) {
var parent = $(parentID);
parent.removeChild($(DelDivID));
}
//通过元素ID获取文档中的元素
function $(v) { return document.getElementById(v); }
</script>
<body>
<div align="left" id="div_Pic" style="border:1px solid #CCCCCC">
<input name="PicFile" type="file" id="ShowPicFile">
</div>
<input type="button" onClick="createInput('div_Pic','PicFile')" name="button" id="button" value="+ 继续添加图片">
</body>
</html>
jql1593620 2011-06-14
  • 打赏
  • 举报
回复
一样期待答案。。。
子夜__ 2011-06-14
  • 打赏
  • 举报
回复

62,243

社区成员

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

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

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

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