怎样获取FileUpload的各个部分? FileUpload上显示G:\shouji\aa.jpg怎样获取整个路径G:\shouji\aa.jpg和获取前面的路径G:\shouji\ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 整个路径应该是有属性前面的路径可以用string的lastindexof截取比如directory.Substring(directory.LastIndexOf(@"\") + 1); HttpFileCollection hs = HttpContext.Current.Request.Files; HttpPostedFile postedFile = null; for (int iFile = 0; iFile < hs.Count; iFile++) { postedFile = hs[iFile]; string file = postedFile.FileName;//G:\shouji\aa.jpg string files = file.Remove(file.Length - System.IO.Path.GetFileName(postedFile.FileName).Length);//G:\shouji\ } string file = postedFile.FileName;//G:\shouji\aa.jpg 获取到的是aa.jpg 而不是G:\shouji\aa.jpg FileUpload控件FileUpload控件是一个很重要的控件,它被Web服务器最终解释为形如“<input type=”file”…/>”这样的普通HTML控件。它有如下常见属性:属性名 数据类型 说明 FileBytes byte[] 上传的文件内容的字节数组表示形式 FileContent Stream 上传文件的数据流 FileName string 上传文件在客户端的名字 HasFile bool 指示是否上传了文件 PostedFile HttpPostedFile 获取文件基础的HttpPostedFile对象 这个HttpPostedFile对象能帮我们做很多工作,它也有一些有用的常见属性:属性名 数据类型 说明 ContentLength int 上传的文件内容的字节长度 ContentType string 上传文件的MIME 内容类型 FileName string 上传文件的在客户端的名字 InputStream Stream 指向上传文件的Stream对象 FileUpload控件还有一个void SaveAs (string filename)的方法,这个方法用于将上传的文件保存到服务器上。一般来说,使用FileUpload控件上传文件一般有如下几个步骤:(1)利用HasFile属性判断是否上传了文件。(2)在服务器上指定一个物理路径,并检查这个物理路径是否存在,如果不存在则先创建。(3)指定上传文件在服务器上的上传路径,利用SaveAs()保存上传的文件。这一步还可以做一些其它检查工作,比如检查上传的文件格式是否符合要求或文件内容大小是否符合要求。(4)将相对路径或者URL地址保存起来,以便客户访问或者下载。这里要着重强调的是:我们保存上传的时候保存文件用的是物理路径,但是要保存的、日后客户端能访问得到的却是相对路径或者URL地址。 一个使用FileUpload控件的例子:protected void btnUpload_Click(object sender, EventArgs e) { //判断是否上传了文件 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("<a href='upload/{0}'>upload/{0}</a>", fileUpload.FileName); } } 具体用法和描述见:asp.net夜话之六:asp.net基本控件 对于服务器来说,客户端的路径是没有任何意义的。所以fileupload不会提供完整路径。你非要路径的话,放已经隐藏空间,<input type='hidden'>或者服务器的隐藏域控件。fileupload在客户端加上事件onchange,通过js把fileupoad.value赋值给隐藏控件,后台的地方取隐藏控件的值 string s1=FileUpload1.PostedFile.FileName;//获取G:\shouji\aa.jpg string s2 =s1.Substring(0,s1.LastIndexOf('\\'));//获取G:\shouji\ visual studio 2012 单元测试中 分析代码覆盖率问题 去掉treeView里面同一层中名称相同的节点 SOAOffice提供Word/Excel动态数据填充 如果得到gridview删除数据的条数 在treeview控件的子结点下面添加一个表可以么?结点的名字中有输入框可以么 如何提取已知字符串中的URL? 如何取得DataGrid页脚中TextBox的值 如何通过域名取回IP??? 如何用按钮显示combo里被选中的项呢? .Net Install Problem 在打印小票时,无法验证是否有打印机!! C#(winform) 特殊字符串转换成时间
前面的路径可以用string的lastindexof截取比如directory.Substring(directory.LastIndexOf(@"\") + 1);
HttpFileCollection hs = HttpContext.Current.Request.Files;
HttpPostedFile postedFile = null;
for (int iFile = 0; iFile < hs.Count; iFile++)
{
postedFile = hs[iFile];
string file = postedFile.FileName;//G:\shouji\aa.jpg
string files = file.Remove(file.Length - System.IO.Path.GetFileName(postedFile.FileName).Length);//G:\shouji\
}
获取到的是aa.jpg
而不是G:\shouji\aa.jpg
FileUpload控件是一个很重要的控件,它被Web服务器最终解释为形如“<input type=”file”…/>”这样的普通HTML控件。
它有如下常见属性:属性名 数据类型 说明
FileBytes byte[] 上传的文件内容的字节数组表示形式
FileContent Stream 上传文件的数据流
FileName string 上传文件在客户端的名字
HasFile bool 指示是否上传了文件
PostedFile HttpPostedFile 获取文件基础的HttpPostedFile对象
这个HttpPostedFile对象能帮我们做很多工作,它也有一些有用的常见属性:
属性名 数据类型 说明
ContentLength int 上传的文件内容的字节长度
ContentType string 上传文件的MIME 内容类型
FileName string 上传文件的在客户端的名字
InputStream Stream 指向上传文件的Stream对象
FileUpload控件还有一个void SaveAs (string filename)的方法,这个方法用于将上传的文件保存到服务器上。一般来说,使用FileUpload控件上传文件一般有如下几个步骤:
(1)利用HasFile属性判断是否上传了文件。
(2)在服务器上指定一个物理路径,并检查这个物理路径是否存在,如果不存在则先创建。
(3)指定上传文件在服务器上的上传路径,利用SaveAs()保存上传的文件。这一步还可以做一些其它检查工作,比如检查上传的文件格式是否符合要求或文件内容大小是否符合要求。
(4)将相对路径或者URL地址保存起来,以便客户访问或者下载。
这里要着重强调的是:我们保存上传的时候保存文件用的是物理路径,但是要保存的、日后客户端能访问得到的却是相对路径或者URL地址。
{
//判断是否上传了文件
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("<a href='upload/{0}'>upload/{0}</a>", fileUpload.FileName);
}
}
fileupload在客户端加上事件onchange,通过js把fileupoad.value赋值给隐藏控件,后台的地方取隐藏控件的值
string s2 =s1.Substring(0,s1.LastIndexOf('\\'));//获取G:\shouji\