`
zccst
  • 浏览: 3322346 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

挖掘input type=file的新知识

阅读更多
作者:zccst

文件上传,这个问题始终一知半解,今天又近真相一步。

二、formData(只支持FF)






一、FileList(所有浏览器都支持)
原来file还有一个FileList对象,类似NodeList,里面放着文件列表。根据MDN描述:
一个FileList对象通常来自于一个HTML input元素的files属性,你可以通过这个对象访问到用户所选择的文件.该类型的对象还有可能来自用户的拖放操作,查看DataTransfer对象了解详情.

1,使用FileList
所有type属性(attribute)为file的 <input> 元素都有一个files属性(property),用来存储用户所选择的文件. 例如:

<input id="fileItem" type="file">
下面的一行代码演示如何获取到一个FileList对象中的第一个文件(File 对象):

var file = document.getElementById('fileItem').files[0];

2,例子
例子
这个例子迭代了用户通过一个input元素选择的多个文件:
// fileInput是一个 HTML input 元素: <input type="file" id="myfileinput" multiple>
var fileInput = document.getElementById("myfileinput");

// files 是一个 FileList 对象(类似于NodeList对象)
var files = fileInput.files;
var file;

//遍历所有文件
for (var i = 0; i < files.length; i++) {

    // 取得一个文件
    file = files.item(i);
    // 这样也行
    file = files[i];
    // 取得文件名
    alert(file.name);
}



IE9下有bug
// ie9 don't support FileList Object
http://stackoverflow.com/questions/12830058/ie8-input-type-file-get-files
解决办法:
  var self = this;
  //input输入框的change事件,要在input失去焦点的时候才会触发
  self.input.change(function(e) {
    // ie9 don't support FileList Object
    // http://stackoverflow.com/questions/12830058/ie8-input-type-file-get-files
    self._files = this.files || [{
      name: e.target.value
    }];// files 是一个 FileList 对象(类似于NodeList对象)
    
    var file = self.input.val();
    if (self.settings.change) {
      self.settings.change.call(self, self._files);
    } else if (file) {
      return self.submit();
    }
  });




如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

    如何将input type=file显示的浏览变成英文的

    ### 如何将input type=file显示的“浏览”变成英文的 在网页开发中,经常会遇到需要用户上传文件的情况。默认情况下,HTML中的`&lt;input type="file"&gt;`元素的“浏览”按钮通常会显示为系统语言,对于英文界面的需求,...

    input type=file 显示的浏览 改成英文

    本篇文章将详细讲解如何将`&lt;input type="file"&gt;` 控件的“浏览”按钮和提示改为英文。 首先,我们需要理解`&lt;input type="file"&gt;`的基本结构和属性。这个标签创建了一个可以点击的区域,用户可以通过点击打开本地...

    HTML input type=file文件选择表单元素.docx

    一、input type=file 文件选择表单元素 input type=file 是 HTML 中的一种表单元素,用于选择文件并上传到服务器。HTML5 之前的 input type=file 元素只能一次上传一张图片,无法满足一次上传多图的交互需求。因此...

    input type=file 调取手机照相机和选择照片上传

    本文将深入探讨如何使用 `input type="file"` 激活手机的照相机功能以及选择图片上传。 首先,`&lt;input type="file"&gt;` 是HTML中的一个表单元素,它的主要作用是让用户选择本地文件。在默认情况下,点击这个元素会...

    Android-解决在webview中input标签type="file"不能使用的问题

    然而,在实际使用中,我们可能会遇到一些问题,比如在WebView中使用`&lt;input type="file"&gt;`标签时,用户无法选择本地文件。这个现象主要是由于Android的安全机制和权限控制导致的。本文将详细讲解如何解决这个问题。 ...

    图片上传.rar(C#如何使用input[type=file]进行多个图片上传)

    C#如何使用input[type=file]进行多个图片上传(XMLHttpRequest与后台交互) 详情可看:https://blog.csdn.net/weixin_44713389/article/details/90746459

    vue中使用input[type=”file”]实现文件上传功能

    注意:input[type=file] 标签中的属性accept=application/msword,application/pdf 在pc上正常,但是在手机ios和android上这个文件格式限制会被忽略,所以需要在js中增加格式的判断,以及对应显示样式的设置.(我也是刚...

    input type=file 及时预览图片

    首先,我们需要理解 `&lt;input type="file"&gt;` 的基本用法。在HTML代码中,创建一个这样的输入框非常简单: ```html &lt;input type="file" id="imageUpload" accept="image/*"&gt; ``` 这里,`accept="image/*"` 参数限制...

    android webview input=file 失效解决方案

    出于安全考虑,`input=file`选择文件的API被禁用或限制。 2. **文件选择器缺失**:在一些Android版本中,点击`input=file`元素时,系统文件选择器不会弹出。 3. **权限问题**:如果应用没有请求读取外部存储的权限...

    file input 按钮国际化

    对于file input按钮,可以通过设置`&lt;input type="file" lang="zh-CN"&gt;`来显示中文版本,但遗憾的是,浏览器默认的按钮文本并不会因此改变。 2. **CSS替换文本**:利用CSS的伪元素`::before`和`::after`,我们可以...

    定义input type=file 样式的方法

    &lt;input type="file" name="fileField" class="file" id="fileField" size="28" onchange="document.getElementById('textfield').value=this.value" /&gt; &lt;input type="submit" name="submit" class="btn" value=...

    HTML+JAVA 手机端相册或者拍照上传到服务器,简单的代码样例(使用控件input type=file)

    HTML+JAVA 手机端相册或者拍照上传到服务器。前台代码部分:手机选择图片input type=file,通过form表单提交到后台;后台java代码部分:获取表单提交的文件和普通控件数据,将文件写入服务器某路径下

    ajaxfileupload.js结合input[type=file]无刷新上传

    本文将详细介绍如何使用`ajaxfileupload.js`这个jQuery插件,结合`input[type=file]`元素,实现无刷新的文件上传功能。 首先,`ajaxfileupload.js`是一个基于jQuery的轻量级插件,它允许开发者通过异步方式发送文件...

    解决webView不支持网页,webViewinput type="file"上传功能

    然而,WebView在处理某些复杂网页功能时可能会遇到限制,比如`input type="file"`的文件上传功能。这个功能在许多网站上用于让用户选择本地文件进行上传,但在默认情况下,Android或iOS的WebView可能无法直接支持。...

    怎样让input type=file 只读,并能实现文件上传

    ### 如何使 input type=file 只读并实现文件上传 在网页开发中,有时我们需要让用户选择一个文件但不允许他们更改已选择的文件。这通常是为了防止用户在提交表单前临时更改文件,从而确保文件的一致性和安全性。...

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

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

    兼容IE7、IE8、IE9的input type=&quot;number&quot;插件

    在网页开发中,`&lt;input type="number"&gt;` 是HTML5引入的一个新特性,用于创建一个可以输入整数或浮点数的输入框。然而,这个特性在早期的Internet Explorer浏览器,尤其是IE7、IE8和IE9版本中并未得到支持。这导致了...

    Android WebView 不支持 H5 input type=”file” 解决方法

    通过网络搜索发现是因为 android webview 由于考虑安全原因屏蔽了 input type=”file” 这个功能 。 经过不懈的努力,以及google 翻译的帮助 在 stackoverflow 中找到了解决的方法。 具体可以理解为 重写webview 的...

    css input[type=file] 样式美化(input上传文件样式 )

    本教程将详细介绍如何使用CSS对`input[type=file]`进行样式美化,使文件上传按钮更加符合网站的整体风格。 首先,我们来看一个简单的例子。在这个例子中,我们创建了两个不同的样式来展示如何自定义文件上传按钮: ...

Global site tag (gtag.js) - Google Analytics