单纯的事件与获取

<input type="file" name="file" id="fileUpload">
<img id="preview" src=""/>

jQuery

$("#fileUpload").change(function () {
console.log($("#fileUpload")[0].files);
});

原生JavaScript

  var popImg = document.getElementById("fileUpload")   ----------
popImg.onchange = function() {
const file = document.getElementById('fileUpload');  // 获取 input(只是演示可以使用外面的 popImg)
const fileObj = file.files[0];  // 获取选中的文件信息
console.log(fileObj)
const windowURL = window.URL || window.webkitURL; // 兼容操作
const img = document.getElementById('preview');  // 获取img元素
if(file && fileObj) {  // 判断是否为空 null
const dataURl = windowURL.createObjectURL(fileObj);
img.setAttribute('src',dataURl);
}
}

URL.createObjectURL()用法(https://blog.csdn.net/qq_39258552/article/details/84133770)

===============

1.如何实现file上传文件,预览效果

参考(https://blog.csdn.net/xiaohu12685/article/details/80328022)

<input id="pop_file" type="file" accept=".jpg,.jpeg,.png" v-on:change="uploadFile($event)" name="fileTrans" ref="file" value="" />
<img id="preview" src=""/>

js.

uploadFile:function(ev){
var that = this;
const file = document.getElementById('pop_file');
const fileObj = file.files[0];
const windowURL = window.URL || window.webkitURL;
const img = document.getElementById('preview');
if(file && fileObj) {
const dataURl = windowURL.createObjectURL(fileObj);
img.setAttribute('src',dataURl);
}
}

2.获取到file里的文件,使用异步的请求实现局部刷新的效果

<form @submit.prevent="addbanner()">
    <input id="pop_file" type="file" accept=".jpg,.jpeg,.png" v-on:change="uploadFile($event)" name="fileTrans" ref="file" value="" />
    <input class="pop_but" type="submit" value="提交"/>
</form>

js.

addbanner: function(ev) {
    var oFiles = document.getElementById("pop_file").files;
    var params = new FormData();
    params.append('file',oFiles[0]);
    axios({
        method: 'post',
        url: 'http://请求路径/admin/BannerApi/actionBannerSave',
        headers: {
            'Content-type': 'application/x-www-form-urlencoded;charset=UTf-8'
        },
        data: params
    })
    .then(function(response) {
        console.log(response)
    })
}

如果是ajax请求的话

var oFiles = document.getElementById("pop_file").files;
var params = new FormData();
params.append('file',oFiles[0]);
$.ajax({
type:'post',
url:'http://api.tianshuai.com.cn/admin/BannerApi/actionBannerSave',
data:params,
cache: false,
contentType: false,
processData: false,
success:function(data){
console.log(data)
}
})

如何获取input,file里的文件,实现预览效果,并传给后端?的更多相关文章

  1. input type=file 选择图片并且实现预览效果的实例

    为大家带来一篇input type=file 选择图片并且实现预览效果的实例. 通过<input />标签,给它指定type类型为file,可提供文件上传: accept:可选择上传类型, ...

  2. input type=file 选择图片并且实现预览效果

    通过<input />标签,给它指定type类型为file,可提供文件上传: accept:可选择上传类型,如:只要传图片,且不限制图片格式,为image/*: multiple:规定是否 ...

  3. input file样式修改,图片预览删除功能

    本篇对input file进行了修改,改成自己需要的样式,类似验证身份上传身份证图片的功能. 效果图如下: 这里主要展示上传预览图片功能,对于删除功能的html及css写的比较粗糙,对于想要精细表现这 ...

  4. JS input file 转base64 JS图片预览

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. input file 在开发中遇到的问题 类似ajax form表单提交 input file中的文件

    最近在做项目的过程中遇到个问题,在这里做个记录防止日后忘记 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为 ...

  6. ajax form表单提交 input file中的文件

    ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...

  7. 在另一个文本框显示input file选择的文件名字

    javascript 获取文件域 (type=file) 的完整路径一直是很麻烦的问题,问题主要出在一些浏览器基于安全性考虑而不能正常获取到文件域中选中图片的决对路径,尤其一些基于webkit的浏览器 ...

  8. 使用input:file控件在微信内置浏览器上传文件返回未显示选择的文件

    使用input:file控件在微信内置浏览器上传文件返回未显示选择的文件 原来的写法: <input type="file" accept="image/x-png ...

  9. Java实现文件的预览

    最近项目需要用到文件的预览功能,就开始在网上收集资料,学习了几种文件预览的方法.我集成到我项目内测试的有以下三种,最后使用的是第三种: 直接使用别人提供的服务 例如:office web 365 使用 ...

随机推荐

  1. c++-多态的学习

    多态的基本介绍 多态基础 面向对象新求 C++编译器提供的多态解决方案 多态意义.多态成立的是三个条件 多态理论基础 多态面试题强化 多态的理解 C++编译器如何实现多态 重载重写重定义 虚析构函数 ...

  2. TP5中find_in_set的用法

    TP5.1.22版本 $id=4; Db::name('menu')->where('FIND_IN_SET(:id,pid_all)',['id' => $id])->update ...

  3. Android判断com.android.camera.action.CROP是否存在

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/225 最近线上报错,有个用户连续crash了10次左右,查 ...

  4. BIM工程信息管理系统搭建-系统功能需求

    BIM工程信息管理系统功能需求 该系统是真实存在项目,项目于2013年开始研发到2014年初完成,按照当时技术能力和国内BIM现状,现在BIM技术已比之前好多了,不管是建模.展示等.均提高了不少,本博 ...

  5. 【机器学习实战】计算两个矩阵的成对距离(pair-wise distances)

    矩阵中每一行是一个样本,计算两个矩阵样本之间的距离,即成对距离(pair-wise distances),可以采用 sklearn 或 scipy 中的函数,方便计算. sklearn: sklear ...

  6. Caffeine批量加载浅析

    最近项目中的本地缓存,看是从Guava改成了Caffeine,据说是性能更好,既然性能更好的话,那么就用起来吧.不过在使用过程中,发现了单个load和批量loadall方面的一些小设置,记录一下. 一 ...

  7. ESP8266的RTOS版本ota在线升级基本流程及备忘

    ESP8266的ota升级由于涉及到不同的flash空间大小,以及新旧版本的不同,所以流程相对比较复杂.笔者这个倒腾的时间还是有一些的,不过,总归把事情解决了.下面记录一下基本的流程和遇到的问题. 还 ...

  8. 耐人寻味的CSS属性font-family

    font-family是一个网站用户体验的第一入口,非常有必要花功夫来研究一下.我们首先需要了解衬线字体和无衬线字体,接着了解中英文的常用字体及其适用性. 衬线字体 衬线(serif)的笔画有粗有细的 ...

  9. WPF 3D Cube及点击交互

    在WPF中构建一个简单的立方体比较容易实现,可参考资料也比较众多.比较麻烦的是处理点击交互. 我在WPF中用两种方式实现了3DCube,效果图如下: 方式一: 最常见的3D内容构建模式,结构如下图. ...

  10. 更换国内pip

    pip国内的一些镜像 原始地址:https://pypi.python.org/simple 国内地址: 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技 ...