第二张贴,急、急、急、

时间:2021-08-10 16:48:20
原问题是这样的:
有一个FileUpload控件(ImageUpload_Warning),要实现图片上传,在获得文件的路径时方法如下:
string imagename = ImageUpload_Warning.FileName;//图片名
string fullfilename = ImageUpload_Warning.PostedFile.FileName;//图片全路径
string filetype = fullfilename.Substring(fullfilename.LastIndexOf(".")+1);//图片类型

“string fullfilename = ImageUpload_Warning.PostedFile.FileName;//图片全路径”这句获得的是图片位置的全路径对吧? 可是在我老师的电脑上显示的却只是图片的文件名,并不是全路径,和“imagename”的值是一样的?而在我的电脑上返回的确实全路径。我们用的都是 VS2008。。。

我老师的操作系统是XP,而我的操作系统是Win7,和这个有关系吗?什么原因?怎样修正???

大侠: huangwenquan123的解释是:

FileUpload1.PostedFile.FileName
ie:d:\My Documents\xx.png 
ff:xx.png


可现在的情况是,在火狐下确实是不行,获取的是图像名。可是老师在台式机上的IE6下不行,而在他笔记本的IE6下则可以,获得的是全路径。  这样的问题应该怎样解决呢???急急急。。。

5 个解决方案

#1


“string fullfilename = ImageUpload_Warning.PostedFile.FileName;//

这种情况碰到过,IE和火狐获得的路径不同的,IE是全路径,火狐是文件名。

#2


上传的服务器端关心的是文件名,而不是包含路径的文件名,所以用FileUpload1.PostedFile.FileName
获取后,再处理一次就可以了:
using System.IO;

string fileName=Path.GetFileName(FileUpload1.PostedFile.FileName);

#3


火狐的安全机制好像是不可以获取客户端完整地址,就只获取了个文件名来

#4


引用 2 楼 dalmeeme 的回复:
上传的服务器端关心的是文件名,而不是包含路径的文件名,所以用FileUpload1.PostedFile.FileName
获取后,再处理一次就可以了:
using System.IO;

string fileName=Path.GetFileName(FileUpload1.PostedFile.FileName);

支持

string fileName=Path.GetFileName(FileUpload1.PostedFile.FileName);

浏览器不一样 获取的就不一样。

写成二进制吧!哈哈

#5


引用楼主 sscwp7_001 的回复:
string fullfilename = ImageUpload_Warning.PostedFile.FileName;//图片全路径
string filetype = fullfilename.Substring(fullfilename.LastIndexOf(".")+1);//图片类型

//你获取图片全路径是要用来取后缀名的?直接用
Path.GetFileName(FileUpload1.PostedFile.FileName)//获取文件名+后缀名
Path.GetExtension(FileUpload1.PostedFile.FileName)//后缀名

#1


“string fullfilename = ImageUpload_Warning.PostedFile.FileName;//

这种情况碰到过,IE和火狐获得的路径不同的,IE是全路径,火狐是文件名。

#2


上传的服务器端关心的是文件名,而不是包含路径的文件名,所以用FileUpload1.PostedFile.FileName
获取后,再处理一次就可以了:
using System.IO;

string fileName=Path.GetFileName(FileUpload1.PostedFile.FileName);

#3


火狐的安全机制好像是不可以获取客户端完整地址,就只获取了个文件名来

#4


引用 2 楼 dalmeeme 的回复:
上传的服务器端关心的是文件名,而不是包含路径的文件名,所以用FileUpload1.PostedFile.FileName
获取后,再处理一次就可以了:
using System.IO;

string fileName=Path.GetFileName(FileUpload1.PostedFile.FileName);

支持

string fileName=Path.GetFileName(FileUpload1.PostedFile.FileName);

浏览器不一样 获取的就不一样。

写成二进制吧!哈哈

#5


引用楼主 sscwp7_001 的回复:
string fullfilename = ImageUpload_Warning.PostedFile.FileName;//图片全路径
string filetype = fullfilename.Substring(fullfilename.LastIndexOf(".")+1);//图片类型

//你获取图片全路径是要用来取后缀名的?直接用
Path.GetFileName(FileUpload1.PostedFile.FileName)//获取文件名+后缀名
Path.GetExtension(FileUpload1.PostedFile.FileName)//后缀名