`

input file的使用方法(清空等)

 
阅读更多

input.outerHTML=input.outerHTML.replace(/(value=\").+\"/i,"$1\""); 

 

http://www.jb51.net/article/24872.htm

 

在使用<input type='file' />控件的过程中,发现一个只有IE8下才存在的BUG,有时候取文件上传的路径(value),会由类似于D:\*.*变成C:\fakepath\*.*,即真实的路径被C:\fakepath\所取代了。
        这个BUG在IE8下的出现情况目前基本上确定与代码的写法有关,但具体什么情况下会出现并不清楚,IE8下并不是所有的页面都会出现这个问题。
关于这个问题的由来,网上有很多文章和帖子都指向同一个地址:http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/019018.html,可惜这个文章是英文的,我的英文水平有限,只能用google翻译看个大概,问题可能与Web标准有关。

目前网上有两种解决方案:
第一种,是更改用户的IE8的浏览器设置
工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。


第二种,在IE中使用下面的脚本函数来替换直接取控件value的操作(FireFox中使用obj.files.item(0).getAsDataURL())
function getValue(obj) {
    obj.select(); //该对象选取 
    return document.selection.createRange().text; //返回选取项的文本内容 
}


显然,对于Web开发来说,最好是不出现该Bug,如果经过测试,IE8下某个页面中的input file控件不存在该Bug,则可以不必考虑该问题。
如果存在该Bug,而且无法找到原因时,第二种解决方案是比较好的选择
第一种解决方案并不可行,不可能要求所有的用户为了访问我们的网站更改IE设置。

分享到:
评论

相关推荐

    清空input的file上传的数据

    自己总结的file上传数据的一些小经验,给大家分享下,希望对大家有帮助

    input file的默认value清空与赋值方法

    具体的实现步骤包括获取`input file`元素,通过`document.getElementsByTagName`获取到`input`元素的引用,然后通过一些DOM操作,例如创建新的`TextRange`来模拟用户选中文本,通过`SendKeys`模拟键盘输入等方法,来...

    将input file的选择的文件清空的两种解决方案

    首先,通过`getElementById`获取到`&lt;input type="file"&gt;`元素的引用,然后调用`select()`方法选中该输入框,接着使用`document.selection.clear()`清除当前的选择。这种方法基于浏览器的旧版选择和清除机制,其工作...

    vue 清空input标签 中file的值操作

    在Vue.js框架中,处理`&lt;input type="file"&gt;`元素时,用户选择文件后,如果需要清空已选择的文件路径,可以采用多种方法。本文将详细讲解两种常见的解决方案,以及如何在Vue实例中实现这个功能。 首先,让我们看下在...

    清空input类型为file的value属性值的方法

    标题中提到的“清空input类型为file的value属性值的方法”,涉及到JavaScript在操作DOM时遇到的特性。在Web开发中,`value`属性用于获取或设置表单元素的值。对于`file`类型的`&lt;input&gt;`元素,它的值是一个路径字符串...

    清空file选中内容

    要实现清空文件选择的功能,一种常见的方法是利用DOM操作,动态创建新的`&lt;input type="file"&gt;`元素来替换已有的。这是因为每次创建新的`&lt;input type="file"&gt;`,都会重置用户的文件选择。以下是一个简单的示例: ```...

    清空上传控件input file的值

    这种方法虽然能有效清空`&lt;input type="file"&gt;`的值,但请注意,这样做并不会真正删除用户已选择的文件,只是从视觉上清空了控件。如果需要在用户重新选择文件之前阻止旧文件的上传,你需要在提交表单或发送文件到...

    JS清空上传控件input(type=&quot;file&quot;)的值的代码第1/2页

    在进行Web开发的过程中,经常会遇到需要通过JavaScript清空`&lt;input type="file"&gt;`上传控件中的文件选择值的需求。然而,根据HTML标准,`&lt;input type="file"&gt;`控件的值是不允许通过JavaScript直接进行修改的。原因...

    js 获取、清空input type=file的值(示例代码)

    这个函数创建了一个新的`&lt;form&gt;`元素,将`&lt;input type="file"&gt;`元素添加到新表单中,然后调用`reset`方法清空表单,最后将原始的`&lt;input type="file"&gt;`元素放回原位置。 需要注意的是,虽然这两种方法都可以实现...

    使用jQuery清空file文件域的解决方案

    本文主要讨论的是如何使用jQuery来解决一个特定的问题:清空`&lt;input type="file"&gt;`(文件域)的值。由于浏览器的安全策略,尤其是Internet Explorer(IE)的限制,直接通过`.val('')`方法无法清空文件域的值。为了...

    Angular2里获取(input file)上传文件的内容的方法

    &lt;input type="file" id="newUpload" &gt;然后,我们可以通过document.getElementById()方法获取input标签,并通过files属性获取上传的文件。但是,需要注意的是,HTMLElement对象没有files属性,我们需要将其强制转换为...

    JavaScript实现清空(重置)文件类型INPUT元素值的方法

    在Web开发中,文件输入类型(通常称为&lt;input type="file"&gt;)允许用户选择文件并上传到服务器。然而,在某些场景下,开发者可能需要通过JavaScript清空或重置文件选择器的当前值。这种需求往往因为一些安全限制,不能...

    js 获取、清空input type="file"的值示例代码

    ### JavaScript获取和清空input type="file"值的知识点 #### 1. 获取input type="file"的值 `&lt;input type="file"&gt;`元素允许用户选择一个或多个文件,这些文件的路径将通过其`value`属性返回。然而,需要注意的是,...

    js 获取、清空input type=&quot;file&quot;的值(示例代码)

    另一种方法是创建一个临时的`&lt;form&gt;`元素,将`&lt;input type="file"&gt;`添加到这个新表单中,调用`reset`方法清空,然后再将文件输入控件放回原处。这种方法的代码如下: ```html &lt;input type="file" id="fileInput"&gt; ...

    从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别

    在清空input file标签选中值时,分别用了以下方法,发现有的对有的错: 【√】$(“#file”)[0].value = “”; 【√】$(“#file”)[0].value = null; 【×】$(“#file”).attr(“value”,””); 【×】$(“#file”)....

    ASP.Net中FileUpLoad控件内容清空

    当用户点击按钮触发事件时,可以利用JavaScript删除原有的`&lt;input type="file"&gt;`元素,并重新创建一个新的`&lt;input type="file"&gt;`元素来替代它,从而达到清空文件选择的效果。 示例代码如下: ```html &lt;input ...

Global site tag (gtag.js) - Google Analytics