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

浏览器为了保护客户隐私安全,会将上传文件的路径替换成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. }

如果是这种间接调用到就无法获得文件真实的全路径,就只能使用第一种方式。

你可能感兴趣的