主题:关于上传的问题求助
至尊宝
[专家分:90] 发布于 2006-04-25 00:24:00
我用c#做上传和下载的的时候
用的是HTML的File Field控件 和web窗体的Button控件
现在我的代码是
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
this.fileDiv.InnerHtml = this.getFileList();
}
}
//列出已经上传的文件
public string getFileList()
{
string m_DirPath =Server.MapPath(@"\newweb\UpFile\");
string[] m_FileLst = Directory.GetFiles(m_DirPath,"*.*");
StringBuilder strBld = new StringBuilder();
string strTmp = "";
strBld.Append("<table width=100% border=0 cellpadding=0 cellspacing=0>");
strBld.Append("<tr>");
strBld.Append("<td class=lsttitle> </td>");
strBld.Append("<td class=lsttitle> 文件名</td>");
strBld.Append("<td class=lsttitle> 删除</td>");
strBld.Append("</tr>");
for (int i=0;i< m_FileLst.Length;i++)
{
strTmp = Path.GetFileName(m_FileLst[i].ToString());
strBld.Append("<tr>");
strBld.Append("<td class=lstitem> ");
strBld.Append("<input type=\"checkbox\" name=\"FileChx\" value=\""+strTmp+"\">");
strBld.Append("</td>");
strBld.Append("<td class=lstitem>");
strBld.Append(strTmp);
strBld.Append("</td>");
strBld.Append("<td class=lstitem>");
strBld.Append("<a href=UpFile/"+strTmp+" target=\"_blank\">下载</a></td>");
strBld.Append("</tr>");
}
strBld.Append("</table>");
return strBld.ToString();
}
private void Button2_Click(object sender, System.EventArgs e)
{
try
{
string str=this.File1.PostedFile.FileName;
if(str.LastIndexOf ("\\")>1)
{
str=@"\newweb\UpFile\"+str.Substring (str.LastIndexOf ("\\")+1);
this.File1.PostedFile.SaveAs (Server.MapPath (str));
this.fileDiv.InnerHtml = this.getFileList();
}
else
{
Response.Write ("<script>window.alert('请选择要上传的文件!');<script>");
}
}
catch(Exception err)
{
Response.Write ("<script>window.alert('上传失败:"+err.Message+"');<script>");
}
}
不知道这么的我上传后一点反映也没有
我到upFile文件夹里也看不到上传的文件。
回复列表 (共11个回复)
沙发
jzyray [专家分:20610] 发布于 2006-04-25 11:31:00
改成这样试一下:
private void Button2_Click(object sender, System.EventArgs e)
{
try
{
string str=this.File1.FileName;
if(str.LastIndexOf ("\\")>1)
{
str=@"\newweb\UpFile\"+str.Substring (str.LastIndexOf ("\\")+1);
this.File1.SaveAs (Server.MapPath (str));
this.fileDiv.InnerHtml = this.getFileList();
}
else
{
Response.Write ("<script>window.alert('请选择要上传的文件!');<script>");
}
}
catch(Exception err)
{
Response.Write ("<script>window.alert('上传失败:"+err.Message+"');<script>");
}
}
板凳
至尊宝 [专家分:90] 发布于 2006-04-25 18:59:00
楼上的兄弟啊
你这样改运行不了
3 楼
jzyray [专家分:20610] 发布于 2006-04-25 19:20:00
上一贴中没有注意到一点,那就是:
上传路径设定有问题,那个LastIndexOf没有用,因为FileName属性不含路径。
再改:
private void Button2_Click(object sender, System.EventArgs e)
{
try
{
string str=this.File1.FileName;
str=@"\newweb\UpFile\"+str;
this.File1.SaveAs (Server.MapPath (str));
this.fileDiv.InnerHtml = this.getFileList();
}
catch(Exception err)
{
Response.Write ("<script>window.alert('上传失败:"+err.Message+"');<script>");
}
}
4 楼
至尊宝 [专家分:90] 发布于 2006-04-25 19:27:00
还是不行啊
提示 “System.Web.UI.HtmlControls.HtmlInputFile”并不包含对“FileName”的定义
5 楼
jzyray [专家分:20610] 发布于 2006-04-25 19:41:00
晕,我举例用的是System.Web.UI.WebControls.FileUpload。
6 楼
至尊宝 [专家分:90] 发布于 2006-04-25 20:30:00
还请楼上的朋友帮我,
那我应该这么改呢?
我在这里先谢谢您了
在线等
7 楼
至尊宝 [专家分:90] 发布于 2006-04-25 20:31:00
我是初学者,
还望您能详细点,拜托了
谢谢了
8 楼
jzyray [专家分:20610] 发布于 2006-04-25 20:57:00
如果非要用HtmlInputFile的话,
private void Button2_Click(object sender, System.EventArgs e)
{
try
{
string str=this.File1.PostedFile.FileName;
str=@"\newweb\UpFile\"+str;
this.File1.PostedFile.SaveAs (Server.MapPath (str));
this.fileDiv.InnerHtml = this.getFileList();
}
catch(Exception err)
{
Response.Write ("<script>window.alert('上传失败:"+err.Message+"');<script>");
}
}
9 楼
至尊宝 [专家分:90] 发布于 2006-04-25 23:00:00
还是和原来一样
上传没反映
文件里也是空的
我太笨了
10 楼
jzyray [专家分:20610] 发布于 2006-04-26 09:22:00
先看一下这个按键事件能否正确触发。
我来回复