图片拍照上传 使用fileReader 无需跨域

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title></title>
    <style type="text/css">
        html{font-family: "microsoft yahei";overflow: hidden;}
        html{height: 100%;padding: 0;margin: 0;}
        a{text-decoration: none;outline: none;}
        .title{color: #ddd;text-shadow: 2px 2px 5px #000;padding: 80px 0px 0px 100px;}
        .main,.img_main{float: left;background-color: rgba(255,255,255,.7);border-radius: 4px;padding: 20px;margin: 0 3px;}
        .main{width: 40%;margin-left:100px;}
        .img_main{max-width: 40%;}
        .preview{width: 100%;}
        .select-file{border:1px solid #9B59B6;position: relative;}
        .select-file:after{content: ‘‘;display: block;clear: both;}
        .select-file-title,.select-file-btn{float: left;line-height: 30px;height: 30px;}
        .select-file-title{width: 80%;}
        .select-file-btn{width: 20%;background-color: #8E44AD;text-align: center;color: #fff;transition: background-color .5s;}
        .select-file-btn:hover{background-color: #1ABC9C;}
        .base64-text{background-color:transparent;height: 300px;width: calc(100% - 6px);resize:none;overflow: auto;border: 1px solid #9B59B6;margin-top: 10px;word-break: break-all;}
    </style>
</head>
<body>
    <h1 class="title">图片转Base64</h1>
    <div class="main">
        <div class="control">
            <div class="select-file">
                <div class="select-file-title"></div>
                <a href="javascript:;" class="select-file-btn">选择文件</a>
            </div>
        </div>
        <div class="control">
            <textarea class="base64-text" readonly></textarea>
        </div>
    </div>
    <div class="img_main">
        <img src="" class="preview"/>
    </div>
    <script type="text/javascript">
        var inputFile =  document.createElement(‘input‘);
        inputFile.type = ‘file‘;
        inputFile.accept = ‘image/*‘;
        var selectFile = document.querySelector(‘.select-file‘);
        var base64Text = document.querySelector(‘.base64-text‘);
        var preview = document.querySelector(‘.preview‘);

        var reader = new FileReader();
        reader.onload = function(){
            base64Text.innerText = this.result;
            preview.src = this.result;
        };
        inputFile.addEventListener(‘change‘, function(){
            selectFile.querySelector(‘.select-file-title‘).innerHTML = this.value;
            if(this.files.length == 0){
                base64Text.innerText = ‘‘;
                return;
            }
            var file = inputFile.files[0];
            base64Text.placeholder = ‘‘;
            if(!(/^image/.test(file.type))){
                base64Text.placeholder = ‘不是图片文件‘;
                return;
            }
            reader.readAsDataURL(file);
        });

        selectFile.addEventListener(‘click‘, function(){
            inputFile.click();
        });
    </script>
</body>
</html>
时间: 2024-09-29 20:34:16

图片拍照上传 使用fileReader 无需跨域的相关文章

js 利用iframe和location.hash跨域解决办法,java图片上传回调JS函数跨域

奶奶的:折腾了我二天,终于解决了!网上有很多例子. 但跟我的都不太一样,费话不多说了,上图   上代码: IE ,firefix,chrome 测试通过 js :这个主页面,部分代码, function submitUpload(id){ $("#imgSrc" + id +"").attr("alt", "图片上传中--"); var imgID = id; if(id>0){ imgID = 1; } var for

js 利用iframe和location.hash跨域解决的方法,java图片上传回调JS函数跨域

奶奶的:折腾了我二天,最终攻克了!网上有非常多样例. 但跟我的都不太一样,费话不多说了,上图   上代码: IE ,firefix,chrome 測试通过 js :这个主页面,部分代码, function submitUpload(id){ $("#imgSrc" + id +"").attr("alt", "图片上传中--"); var imgID = id; if(id>0){ imgID = 1; } var fo

阿里云OSS上传文件本地调试跨域问题解决

问题描述: 最近后台说为了提高上传效率,要前端直接上传文件到阿里云,而不经过后台.因为在阿里云服务器设置的允许源(region)为某个固定的域名下的源(例如*.cheche.com),直接在本地访问会有跨域问题. 解决方案: 在本机C:\Windows\System32\drivers\etc的hosts文件中(使用管理员身份打开并编辑)添加一行地址映射:127.0.0.1 test.cheche.com 然后把前端运行项目的端口改为80,以vue项目为例(config/index.js) 到这

Ueditor编辑器附件上传配置(非跨域)

已公司项目测试环境为例 1.将net.rar文件解压至服务器,在网站下面添加编辑器 附件:https://files.cnblogs.com/files/benpao-yezi/net.rar 2.在浏览器访问http://172.56.20.34:8051/ueditor/controller.ashx,页面显示{"state":"action 参数为空或者 action 不被支持."},即为添加成功 3.进入项目文件gaia_3.0\src\1.Web\src\

js的FileReader实现图片文件上传、预览

js的FileReader实现图片文件上传.预览 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件.使用Data URL的好处是,您不需要额外再发出一个HTTP 请求到服务器端取得额外的资料:而缺点便是,网页的大小可能会变大.它适合应用在内嵌小图片,不建议将大图像文件编码成Data URL来使用.您的图像文件不能够超过浏览器限定的大小,否则无法读取图像文件.1

微信公众平台前端人员对接(微信拍照上传)

前言: 1.本篇主要介绍前端如何对接微信公众平台 2.示例选取微信拍照上传 3.微信JS-SDK说明文档 4.企业号开发者中心 5.请一定要确认自己的帐号类型是否拥有使用微信某项功能的权限,要不然方法回调不起作用 6.企业号对接功能检测图如下: 步骤: 1.确认设置安全域名(设置后,可在该域名下进行测试) 2.获取到AppID和AppSecret 3.通过AppID和AppSecret得到access_token a.请求方式get b.请求链接https://api.weixin.qq.com

iOS实现视频和图片的上传

关于iOS如何实现视频和图片的上传, 我们先理清下思路 思路: #1. 如何获取图片? #2. 如何获取视频? #3. 如何把图片存到缓存路径中? #4. 如何把视频存到缓存路径中? #5. 如何上传? 接下来, 我们按照上面的思路一步一步实现 首先我们新建一个类, 用来储存每一个要上传的文件uploadModel.h #import <Foundation/Foundation.h> @interface uploadModel : NSObject @property (nonatomic

Html5+asp.net mvc 图片压缩上传

在做图片上传时,大图片如果没有压缩直接上传时间会非常长,因为有的图片太大,传到服务器上再压缩太慢了,而且损耗流量. 思路是将图片抽样显示在canvas上,然后用通过canvas.toDataURL方法得到base64字符串来实现压缩. 废话不多少不多说直接看代码: 本次测试使用了 zepto.min.js 插件,更新版本的下载请点击这里 主要js代码: //图片压缩处理 ; (function () { /** * 加载的时候进行抽样检测 * 在iOS中,大于2M的图片会抽样渲染 */ func

微信js-sdk,选择图片,上传,下载到本地,php服务端

//前端js代码<script> //客户端6.0.2 wx.config({ //debug:true, appId: "{pigcms:$signPackage.appId}", timestamp: {pigcms:$signPackage.timestamp}, nonceStr: '{pigcms:$signPackage.nonceStr}', signature: '{pigcms:$signPackage.signature}', url : '{pigcm