formdata

js调用USB摄像头拍照上传照片

倾然丶 夕夏残阳落幕 提交于 2019-12-03 17:30:57
实现:js调用USB摄像头拍照上传照片 注意:部署到线上之后需要使用 https 才能调用摄像头 参考文档: https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices js代码实例:(vue项目中) 获取video资源 // 拍照上传获取video cameraImgFile() { let _this = this; if (this.canvas !== null) { let cxt = this.canvas.getContext("2d"); cxt.clearRect(0, 0, this.canvas.width, this.canvas.height); } // 老的浏览器可能根本没有实现 mediaDevices,所以我们可以先设置一个空的对象 if (navigator.mediaDevices === undefined) { navigator.mediaDevices = {}; } // 一些浏览器部分支持 mediaDevices。我们不能直接给对象设置 getUserMedia // 因为这样可能会覆盖已有的属性。这里我们只会在没有getUserMedia属性的时候添加它。 if (navigator.mediaDevices.getUserMedia === undefined)

Vue + vue-cropper裁切图片

感情迁移 提交于 2019-12-03 14:30:12
实现: vue按比例裁剪图片 安装:npm i vue-cropper 全局引入:(main.js) import VueCropper from 'vue-cropper' Vue.use(VueCropper) 代码实例: <div class="one-form-item"> <el-upload class="avatar-uploader" action :auto-upload="false" :on-change="uploadFileMethodAnswer" :show-file-list="false" :multiple="true" :before-upload="beforeAvatarUpload" > <el-button class="uploader-button" type="primary">上传banner图</el-button> <span> (建议分辨率800*450)</span> </el-upload> </div> <el-dialog title="图片剪裁(为确保剪切后图片的分辨率足够,请尽量不缩放剪切原图)" :visible.sync="dialogVisible" append-to-body width="70%" style="margin-top: -8vh"> <div class="cropper

使用FormData,进行Ajax请求并上传文件

◇◆丶佛笑我妖孽 提交于 2019-12-03 14:28:32
使用FormData,进行Ajax请求并上传文件 html代码 <form id= "uploadForm"> <p >指定文件名: <input type="text" name="name" value= ""/></p > <p >上传文件: <input type="file" name="uploadFile"/></ p> <input type="button" value="上传" onclick="doUpload()" /> </form> js代码 function doUpload() { var formData = new FormData($( "#uploadForm" )[0]); formData .append("username", "Groucho"); formData .append("accountnum", 123456); // 数字123456被立即转换成字符串"123456" // fileInputElement中已经包含了用户所选择的文件 formData.append("userfile", fileInputElement.files[0]); $.ajax({ url: 'http://localhost:8080/cfJAX_RS/rest/file/upload' , type: 'POST', data:

HTML5 FormData+Ajax上传文件表单

女生的网名这么多〃 提交于 2019-12-03 14:27:42
文件表单的数据类事multipart/form-data,因此,formData需要特殊处理. 文件上传 参考文章: HTML5 + AJAX ( 原生JavaScript ) 异步多文件上传 [HTML5] Blob对象 通过Ajax方式上传文件,使用FormData进行Ajax请求 FormData 对象的使用 FormData.append() <!doctype html> <html> <head> <meta charset="utf-8"> <title>CAS SSO</title> </head> <body> <div class="box"> <div> <div class="item"> <input type="file" name="myfile" style="font-size: 0.7rem;"> </div> <div class="item"> <button type="button" style="display: block; padding: 4px 18px;" class="btn-default">ajax提交</button> </div> <div class="item"> <button type="submit" style="display: block; padding: 4px 18px;" class="btn

在cordova中使用HTML5的多文件上传

蓝咒 提交于 2019-12-03 14:23:52
我们先看看linkface给开放的接口: 字段 类型 必需 描述 api_id string 是 API 账户 api_secret string 是 API 密钥 selfie_file file 见下方注释 需上传的图片文件 1,上传本地图片进行检测时选取此参数 selfie_url string 见下方注释 图片 1 的网络地址,采用抓取网络图片方式时需选取此参数 selfie_image_id file 见下方注释 图片 1 的id,在云端上传过图片可采用 historical_selfie_file file 见下方注释 需上传的图片文件 2,上传本地图片进行检测时选取此参数 historical_selfie_url string 见下方注释 图片 2 的网络地址,采用抓取网络图片方式时需选取此参数 historical_selfie_image_id string 见下方注释 图片 2 的id,在云端上传过图片可采用 selfie_auto_rotate boolean 否 值为 true 时,对图片 1 进行自动旋转。默认值为 false,不旋转 historical_selfie_auto_rotate boolean 否 值为 true 时,对图片 2 进行自动旋转。默认值为 false,不旋转 如文件所示,接口需要同时上传两个文件和两个字段

vue 中 axios 使用

﹥>﹥吖頭↗ 提交于 2019-12-03 14:22:14
前言 在对接接口的时候时常会有传参问题调调试试很多,是 JSON、From Data还是 URL 传参,没有搞清楚就浪费很多时间。 本文中就结合 axios 来说明这些的区别,以便在以后工作更好对接。 一、传参区别 在 axios 的源码中对参数的处理分为两类,一类是:get、delete 等,一类是:post、put 等。 // 路径:node_modules\axios\lib\core\Axios.js utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { Axios.prototype[method] = function(url, config) { return this.request(utils.merge(config || {}, { method: method, url: url })); }; }); utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { Axios.prototype[method] = function(url, data, config) { return this.request(utils

原生JS上传图片、保存图片(ajax,form两种提交)

℡╲_俬逩灬. 提交于 2019-12-03 13:30:18
1. 技术栈前端/后端 原生JS 2.代码部分   2.1 前端     2.1.1 Form表单提交方式  文件名: upload.form.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>upload by form</title> </head> <body> <form action="/upload" enctype="multipart/form-data" method="post"> <input type="file" name="avatar" id="avatar" multiple="multiple" /> <input type="submit" value="form上传头像" id="submit" /> </form> <img id="img" /> </body> <script> window.onload = () => { const avatar = document

那些年,那些跨域问题

拥有回忆 提交于 2019-12-03 12:07:44
浏览器在请求不同域的资源时,会因为同源策略的影响请求不成功,这就是通常被提到的 “跨域问题” 。作为前端开发,解决跨域问题应该是一个被熟练掌握的技能。而随着技术不断的更迭,针对跨域问题的解决也衍生出了多种解决方案。我们通常会根据项目的不同需要,而采取不同的方式。这篇文章,将详细总结跨域问题的相关知识点,以便在遇到相同问题的时候,能有一个清晰的解决思路。 跨域问题的产生背景 早期为了防止CSRF(跨域请求伪造)的攻击,浏览器引入了 同源策略 (SOP)来提高安全性。 CSRF(Cross-site request forgery),跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。 —— 浅谈CSRF攻击方式 而所谓"同源策略",即同域名(domain或ip)、同端口、同协议的才能互相获取资源,而不能访问其他域的资源。在同源策略影响下,一个域名A的网页可以获取域名B下的脚本,css,图片等,但是不能发送Ajax请求,也不能操作Cookie、LocalStorage等数据。同源策略的存在,一方面提高了网站的安全性,但同时在面对前后端分离、模拟测试等场景时,也带来了一些麻烦,从而不得不寻求一些方法来突破限制,获取资源。 JS跨域 这里所说的JS跨域,指的是在处理跨域请求的过程中,技术面会偏浏览器端较多一些

前后端UI产品开发协作

邮差的信 提交于 2019-12-03 10:42:12
本文转载于: 猿2048 网站➸ https://www.mk2048.com/blog/blog.php?id=icjkhaiakj 统一命名规范: 我就发一下我的建议吧,如果你用vue就根据vue的命名规范来,因为大多人都是这样做的,方便管理,推荐一份 vue 开发命名规范 - 前端开发日志 - SegmentFault 思否 如果你用typescript的话,就按照typescript的命名规范来 TypeScript代码格式化方案标准规则是什么? 一般页面开发规范指南 开发规范指南 接口这些是没有什么限制的,文件名,架构,这些你就要和后端统一一下概述接口这些是没有什么限制的,文件名,架构,这些你就要和后端统一一下,可以采用驼峰式命名,也可以采用下滑线命名.开发文档,主要是api文档,目前用的是postman,主要是记录接口,仅做测试用.但是这远远是不足够的,还是要健全api文档,根据经验会有以下问题会出现bug,正常情况,后端只会告诉你success的返回,你看到的只有success的返回,如果你只是这样做,仍然会有问题,success也会有很多种情况,也许你只知道一种情况,在后面的开发也会有问题。后端完善接口文档. api文档应有的格式,分为complete和fail,一般的fail,后端会有默认返回,其他的需要特殊处理 json默认格式 { "data":{},

Uncaught TypeError Illegal invocation when send FormData to ajax

匿名 (未验证) 提交于 2019-12-03 09:14:57
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am trying to send a file to the server to do some processing. This is working perfectly fine using the below code: var formData = new FormData(); formData.append('file', $('#fileUpload')[0].files[0]); options = JSON.stringify(options); // {"key": "value"} $.ajax({ url: "url", type: "POST", data: formData, processData: false, contentType: false, success: function (data) { }, error: function (msg) { showMsg("error", msg.statusText + ". Press F12 for details"); console.log(msg); } }); However, what I am trying to do is not only send the