IE跟FireFox的不兼容太烦人了!在.cs中获取<input type='file' />的FileName得到不同的值!!!
我现在在一个页面中上传多张图片,对应不同的类别(如:位置图,平面图,图片数量可以根据客户的需要添加的, <input type= 'file ' /> 是用js生成的),在页面提交之前我在js中把每个类别的 <input type= 'file ' /> 的value赋值给一个隐藏控件以便在.cs中保存的时侯好区分,我在保存的时侯:
string fileName = 。。。。;
string SoftDown = Request.Form[ "hidSoftDown "];
HttpFileCollection files = Request.Files;
for (int i = 0; i < files.Count; i++)
{
string oldFile = files[i].FileName.Trim();
if (SoftDown.IndexOf(oldFile) > = 0)
{
SoftDown = SoftDown.Replace( " <Path> " + oldFile + " </Path> ", " <Path> " + fileName + " </Path> ");
。。。。。
但是结果是:
files[i].FileName在IE中它获取的值是:C:\AA\A.TXT
在firefox中它获取的值是:A.TXT,造成上面SoftDown的值没有被修改。。。
-----------------------------------
我该怎么办呢?或者对于我这种情况还有其他好的处理方式吗?
------解决方案--------------------判断是哪种游览器,
if(window.ActiveXObject){
//IE
}else{
//其他浏览器
}
------解决方案--------------------如果统一用IE就好咯
------解决方案--------------------就统一支取文件名
try:
var file = Trow.cells[1].getElementsByTagName( "input ")[0].value;
var index = file.lastIndexOf( "\\ ");
if(index > 0)
file = file.substr(index+1);
str += " <File> <Path> " + file + " </Path> <Desc> "
+ Trim(row.cells[2].getElementsByTagName( "input ")[0].value) + " </Desc> <Order> "
+ order + " </Order> <Size> "
+ file + " </Size> </File> ";
------解决方案--------------------同感两个浏览器各自不相同不兼容