利用input上传图片以及文件视频音频等

这里说的input指的就是我们常用的<input/>标签,那么我们如何利用这个标签来处理文件上传呢?
其实当我们的<input> type 类型为 file 的的时候,就可以进行了 。 即 <input type="file"/>
加上这个标签之后就可以看到一个选择文件的按钮了。


常用的相关属性

accept:决定上传文件可以有哪些类型,如果写来相应接收的文件,也就只能看到这些类型的文件来(文件类型不一定就正好是后缀名,这是一个小坑)
图片类型文件

<input type=“file” accept=“image/png,image/gif,image/jpg”> //只支持png gif ipg这3种类型的图片
<input type=“file” accept=“image/*”> //接受任何格式的图片文

文档文件

<input type=“file” accept=".doc, .docx, .xml"> //只支持doc docx xml这3种类型的文档
<input type=“file”
accept=".doc, .docx, .xml, application/msword,
application/vnd.openxmlformats-officedocument.wordprocessingml.document"> //支持所有dMS Doc 文件类型

multiple:决定是否支持一次上传多个文件

<input type=“file” id=“file” name=“file” multiple> //加上multiple属性之后,支持一次选择多个文件

required: 决定


上传文件所触发的事件

change


input 的 value

选择文件的路径

  1. 如果选择来多个文件,这个值表示第一个被选择的文件的路径,如果需要获取其他的路径可以打印一下input这个元素的FileList属性
  2. 如果没有选择文件,value为空

获取所选择文件的相关信息(el.files)

打印这个input.files,我们可以得到一个对象包含信息如下:
name: 文件名
lastModifiedDate: 文件最后修改的时间
size:文件字节大小

8bit(位)=1Byte(字节)
1024Byte(字节)=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB

type: 所选文件的类型


上传文件案例

// -----------------------------------  HTML -------------------------------------
<div>
     <label for="image_uploads">上传图片 (支持:png, jpeg, jpg格式)</label><br />
     <input type="file" id="image_uploads" name="image_uploads" accept=".jpg, .jpeg, .png" multiple>
</div>
<div class="preview">
</div>

// --------------------------------- JS ------------------------------------------------------
<script>
        // 获取 input 元素
        var input = document.querySelector('input');
        // 获取 preview 元素
        var preview = document.querySelector('.preview');


        //监听 input 的 change 事件, 并且在事件发生的时候调用 updateImageDisplay 方法. 
        input.addEventListener('change', upload);

        function upload() {

            var curFiles = input.files;
            //根据files中的长度来判断是否有选择文件,如果没有通知用户;如果有,则预览选择的文件
            if (curFiles.length === 0) {
                var para = document.createElement('p');
                para.textContent = 'No files currently selected for upload';
                preview.appendChild(para);
            } else {
                var list = document.createElement('ol');
                preview.appendChild(list);
                for (var i = 0; i < curFiles.length; i++) {
                    var listItem = document.createElement('li');
                    var image = document.createElement('img');
                    image.src = window.URL.createObjectURL(curFiles[i]);
                    listItem.appendChild(image);
                    list.appendChild(listItem);
                }
            }
        }
    </script>

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值