问题描述
IE8上传文件时javascript取文件的真实路径的问题("C:fakepathxxxxx)<title>MyJSP'fileupload.jsp'startingpage</title><metahttp-equiv="pragma"content="no-cache"><metahttp-equiv="cache-control"content="no-cache"><metahttp-equiv="expires"content="0"><metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"><metahttp-equiv="description"content="Thisismypage"><!--<linkrel="stylesheet"type="text/css"href="styles.css">--><scripttype="text/javascript">functionclick1(){varfile=document.getElementById('file');alert(getPath(file));}functiongetPath(obj){if(obj){if(window.navigator.userAgent.indexOf("MSIE")>=1){obj.select();returndocument.selection.createRange().text;}elseif(window.navigator.userAgent.indexOf("Firefox")>=1){if(obj.files){returnobj.files.item(0).getAsDataURL();}returnobj.value;}returnobj.value;}}</script></head><body>文件<inputtype="file"id="file"name="file"/><inputtype="button"onClick="click1();"value="submit"></body></html>很简单的一个js代码放在本地访问修改后缀名为htmljs可以运行没问题的可是我放在我服务器中访问不运行点击按钮没反应不管是html还是jsp都没反应映于是我alert(document.getElementById('file').value)可以得到对象但是alert(document.getElementById('file').select())是未定义在网上查了查说document.getElementById('file')没有select()属性可是为什么本地可以不报错呢求解很郁闷更多0
解决方案
解决方案二:
select:突出显示表单元素的输入区域。selectMethodHighlightstheinputareaofaformelement.Noreturnvalue.Usethismethodwiththefocusmethodtohighlightafieldandpositionthecursorforauserresponse.
解决方案三:
引用1楼tan3739的回复:
select:突出显示表单元素的输入区域。selectMethodHighlightstheinputareaofaformelement.Noreturnvalue.Usethismethodwiththefocusmethodtohighlightafieldandpositionthecursorforauserresponse.
你好那个为什么在本地测试时没问题的呢还有如果那样的话我该怎样操作呢谢谢
解决方案四:
为了安全,现在的浏览器,js不能直接获取文件的路径。本地的可以,是因为不存在安全的问题。么么哒
解决方案五:
引用3楼gagewang1的回复:
为了安全,现在的浏览器,js不直接获取文件的路径。本地的可以,是因为不存在安全的问题。么么哒
确实是我上面的代码就是解决上面的问题在解决问题的同时产生的问题现在问题是js在服务器不往下走t(document.getElementById('file').select())是未定义
解决方案六:
放弃吧,我以前也就试过,这样的js只能针对部分的浏览器有效,兼容性是个大问题。。。。
解决方案七:
引用5楼gagewang1的回复:
放弃吧,我以前也就试过,这样的js只能针对部分的浏览器有效,兼容性是个大问题。。。。
唉没办法