有过上传文件经验的高手,帮一下啊,如何取得上传文件的路径?

来源:百度知道 编辑:UC知道 时间:2024/07/01 13:58:46
private void UpFile()
{
string FilePath=Server.MapPath("./")+"File";
HttpFileCollection HFC = Request.Files;
for (int i = 0; i < HFC.Count; i++)
{
HttpPostedFile HF = HFC[i];
try
{
if (HFC[i].ContentLength > 0)
{
//response.write(HF.PostedFile.FileName);
//FileUpload1.PostedFile.FileName;
HF.SaveAs(FilePath + "//" + System.IO.Path.GetFileName(HF.FileName));
Page.RegisterStartupScript("sb1", "<script language=javascript>alert('上传成功!');</script>");

}
else
{
Page.RegisterStartupScript("sb1", "<script>alert('对不起,请先选择上传的文件路径!')</script>");

先拖一个HTML控件file field 设置其id为SelectFile并设置其language=c#,runat=server,再在你该程序下目录下新建一个document文件夹,忘记了是不是还需要设置下该文件夹的权限(添加一个every one用户赋予全部权限)
然后再如写代码:

string selectfile="";

string file=SelectFile.PostedFile.FileName.ToString().Trim();
if (!file.Equals(""))
{
string path=Server.MapPath(".");
string fileName = System.IO.Path.GetFileName( SelectFile.PostedFile.FileName );
path += "\\document\\";
selectfile = System.IO.Path.Combine(path,fileName);
SelectFile.PostedFile.SaveAs( selectfile);
Page.RegisterStartupScript("sb1", "<script language=javascript>alert('上传成功!');</script>");//此时你去看document文件夹下已经有你上传的文件了

}

用System.IO.File下的一个方法,名字我忘了好像是Extend吧,获取文件的后缀名。另外再获取文件名的字符串进行SubString取子字符串,获得去除\\或者//的路径,最后自己进行字符串累加就好了。
还有有可能是你上传文件控件的问题,换一个控件试试

把上传的文件夹名称与你的FileUpload1.PostedFile.FileName连接起来就是