上传文件出现c:/fakepath问题


来源于:  http://blog.sina.com.cn/s/blog_8033ea570102v9zv.html

 

浏览器为了保护客户隐私安全,会将上传文件的路径替换成c:/fakepath,目前有一下解决方法:

一、通过修改浏览器的安全设置:

     工具=>Internet选项=>安全=>自定义级别==>找到“其他=>基于内容打开文件,而不是基于文件扩展名”,选择[禁用]即可

 

但是作为一个开发者,我们不能要求客户去这么干,所以需要在编写代码的时候解决这个问题。所以有第二种方式

二、在js中控制,获得全路径:

 
 
  1. document.getElementById("fileId").select();//选中页面中的文件路径
  2. var realPath = document.selection.createRange().text;//取得选中的文件路径

    这个要求页面有文件路径显示出来,如果使用了某个按钮调用文件选择,则无法获得全路径,如下

jsp页面:

 
 
  1. <input type="button" value="间接获得文件" id="toGetFile" class="button" onClick="getFileByButton();" >
  2. <input type="file" id="fileId" name="fileName" style="position:absolute;display:none;" size="1" hidefocus/>
js方法:
 
  
  1. function getFileByButton(){
  2. var fileId=document.getElementById("fileId");
  3. fileId.click();
  4. var path = fileId.value();
  5. }
如果是这种间接调用到就无法获得文件真实的全路径,就只能使用第一种方式。
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM