canvas利用formdata上传到服务器

1.首先绘制canvas图片

<canvas id="myCanvas" width="100" height="100" style="border:1px solid #d3d3d3;border-radius:50%">
        您的浏览器不支持 HTML5 canvas 标签。
</canvas>

这里canvas绘图就不是本文章讲解的内容,我们简单的在画布上写两个字:

var canvas = document.getElementById("myCanvas");
var ctx = this.c.getContext("2d");
ctx.textAlign = ‘left‘;
ctx.textBaseline = ‘top‘;
ctx.font = ‘bold 16px arial‘;
ctx.fillStyle = ‘red‘;
ctx.fillText(‘World‘, 40,40);

效果如下

2.将图片转成二进制利用formdata上传

         let src = canvas.toDataURL("image/png")//这里转成的是base64的地址,直接用到img标签的src是可以显示图片的
         var fd = new FormData();

         function dataURItoBlob(dataURI) {//图片转成Buffer

             var byteString = atob(dataURI.split(‘,‘)[1]);
             var mimeString = dataURI.split(‘,‘)[0].split(‘:‘)[1].split(‘;‘)[0];
             var ab = new ArrayBuffer(byteString.length);
             var ia = new Uint8Array(ab);
             for (var i = 0; i < byteString.length; i++) {
                 ia[i] = byteString.charCodeAt(i);
             }
             return new Blob([ab], {type: mimeString});
         }
         var blob = dataURItoBlob(src);

         fd.append(‘source_from‘,‘webpage_upload‘)//在formdata加入需要的参数
         fd.append(‘file‘,blob)     /*以下是ng4的封装上传代码*/
         var service = ()=>{
             return this.repositoryService.uplodimage(fd)
         }
         var callback = (re)=>{
             if(re[‘success‘]){
                 console.log(re)
                 this.form.image_cover_contents = re.data.file_info.file_path;
             }
         }
         this.core.doServiceAndCallback(‘上传图片‘,service,callback)

原文地址:https://www.cnblogs.com/zhenfei-jiang/p/8206146.html

时间: 2024-08-14 15:45:21

canvas利用formdata上传到服务器的相关文章

使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,

一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不够. 下面我们就说说,利用canvas 生成带水印的图片. 1.我们要实现一下效果 2.创建一个canvas var canvas = document.createElement('canvas'); var time = new Date(); var logoCanvas =time+' '+

利用put上传文件到服务器

#import "KUViewController.h" #import "KUProgress.h" @interfaceKUViewController ()<NSURLSessionTaskDelegate> //下载进度的类,继承UIview @property (weak, nonatomic) IBOutlet  KUProgress *progressView; @end @implementation KUViewController -

第五十三篇、OC利用AFN上传视频到服务器

整体思路已经清楚,拿到视频资源,先转为mp4,写进沙盒,然后上传,上传成功后删除沙盒中的文件. 本地拍摄的视频,上传到服务器: //视频转换为MP4 //转码操作... _hud.mode = MBProgressHUDModeIndeterminate; _hud.labelText = @"转码中..."; AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:_filePathURL options:nil]; NSDateForma

利用文件上传漏洞渗透某传销服务器

Simeon 本文已投i春秋 https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=30085&page=1#pid389491 对于传销网站的服务器来说,目前都防护较强,使用安全狗等软硬件防范,但由于最终使用该产品的必须由人来实现,当获取webshell的情况下,通过一些技术手段可以绕过防火墙的防护,从而登录并获取服务器权限.下面分享一个通过文件上传漏洞获取webshell以及图片安全狗的防范获取服务器权限. 1.1通过文件上传获取w

Android文件上传至服务器

项目演示及讲解 优酷  http://v.youku.com/v_show/id_XODk5NjkwOTg4.html 爱奇艺  http://www.iqiyi.com/w_19rs1v2m15.html#vfrm=8-7-0-1 土豆  http://www.tudou.com/programs/view/fv0H93IHfhM 项目下载 1.手机端选择文件上传至服务器端 http://download.csdn.net/detail/u010134178/8457679 2.手机端拍照上传

HTML5 本地裁剪图片并上传至服务器(转)

很多情况下用户上传的图片都需要经过裁剪,比如头像啊什么的.但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁剪坐标,发送给服务器,服务器裁剪完再返回给用户,来回需要 5 步.步骤繁琐不说,当很多用户上传图片的时候也很影响服务器性能. HTML5 的出现让我们可以更方便的实现这一需求.虽然这里所说的技术都貌似有点过时了(前端界的“过时”,你懂的),但还是有些许参考价值.在这里我只说一下要点,具体实现同学们慢慢研究. 下面奉上我自己写的一个demo,在输入框中选好

php 利用socket上传文件

php 利用socket上传文件 张映 发表于 2010-06-02 分类目录: php 一,利用fsockopen来上传文件 以前我写过一篇关于socket通信原理的博文http://blog.51yip.com/php/673.html有兴趣的朋友可以看看,前面讲的那篇博文,socket的服务器和客户端都是要用php命令来运行的.平常我们上传文件是浏览本地文件,通过一个php程序将文件上传一个地方,这个时候我们用php命令来运行php程序就不方便了.这个时候我们可以用fsockopen来打开

HTTP multipart/form-data 上传方式说明(有8个注意点)

( From: http://home.meegoq.com/home-space-do-blog-uid-17-id-81.html ) HTTP multipart/form-data 上传方式说明 已有 123 次阅读 2010-12-1 11:13 |个人分类:网络学习|关键词:HTTP multipart http上传文件方面的功能使用的协议是rfc1867 (http://www.ietf.org/rfc/rfc1867.txt) 为 http 协议.客户端的浏览器,如 Micros

利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器.     其中,对于sz和rz的理解与记忆我用了如下的方法(很多时候容易搞混):     sz中的s意为send(发送),告诉客户端,我(服务器)要发送文件 send to cilent,就等同于客户端在下载.     rz中的r意为received(接收),告诉客户端,我(服务器)要接收文件 received by cilent,就等同于客户端在上传.