formdata

Vue 实现文件的上传

二次信任 提交于 2019-11-27 20:32:22
  要把文件上传的web,需要分几步?   答:三步   第一步:创建一个上传文件的标签   <input type="file" id="fileExport" @change="handleFileChange" ref="inputer">   由于是在vue中,考虑到获取节点,所以给标签添加一个ref,方便获取属性并给标签添加事件      第二步:改动事件      handleFileChange (e) {     let inputDOM = this.$refs.inputer;     this.file = inputDOM.files[0];// 通过DOM取文件数据     let size = Math.floor(this.file.size / 1024);//计算文件的大小      this.formData=new FormData(); //new一个formData事件     this.formData.append("file",this.file); //将file属性添加到formData里     //此时formData就是我们要向后台传的参数了   }      第三步:上传formData       this.$http({     url:this.HOST + api.upload,     data:formData

HTML文件上传与下载

放肆的年华 提交于 2019-11-27 19:09:35
文件下载 传统的文件下载有两种方法: 使用<a/>标签,href属性直接连接到服务器的文件路径 window.location.href="url" 这两种方法效果一样。但有个很大的问题,如果下载出现异常(连接路径失效、文件不存在、网络问题等),会导致原本的页面被覆盖掉,显示404等错误信息。 大致的优化思路如下: 使用<a/>标签HTML5新的属性download。 使用<iframe><iframe/>元素进行下载。 使用ajax、axios、fetch等方法异步下载。 使用websocket下载。 我们来逐一分析: <a/>标签的download属性,需要和href一起用,download的作用是为下载的文件赋文件名。 如果服务端没有指定文件名,就以此属性规定的名称命名。 如果下载出现异常,该属性的存在能够保证页面不会出问题。 如果服务端返回的不是文件、而是字符,如果download=‘’error.txt”,能够通过打开此文件查看到返回的文本信息。 <iframe>标签可以做到在现有的页面下,内嵌一个子页面。当用户点击文件下载时,将隐藏的iframe元素的src属性指向文件下载路径。 如果没有异常,文件将会直接下载。 如果出现异常,iframe子页面会报错,父页面不会受任何影响。 使用异步请求进行下载。 在网上看了看,大致的流程是

【Python + Flask + Web录音 + baidu-aip + 图灵机器人 = 人机对话】

强颜欢笑 提交于 2019-11-27 18:53:27
原文: http://blog.gqylpy.com/gqy/351 " 安装baidu-aip: pip install baidu-aip 百度云网址: https://login.bce.baidu.com 百度语音合成文档: https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top 百度语音识别文档: https://ai.baidu.com/docs#/ASR-Online-Python-SDK/top 百度自然语言处理基础技术文档: https://ai.baidu.com/docs#/NLP-Python-SDK/6dfe1b04 Mac系统安装ffmpeg文档: https://blog.csdn.net/stonenotes/article/details/68958332 图灵机器人官网: http://www.tuling123.com/ 图灵机器人接口说明: https://www.kancloud.cn/turing/www-tuling123-com/718227 后端代码 # ⚠️这是在macOS系统上(版本10.14)写的 # pip install baidu-aip # 百度云:https://login.bce.baidu.com # 百度语音合成文档:https://ai.baidu.com

Vue上传通过“服务端签名后直传”上传文件到阿里云 报错 400 Bad Request

帅比萌擦擦* 提交于 2019-11-27 15:52:10
我报错的原因是 formData.append('file', file) 放在签名前面了 解决办法 formData.append('file', file) 一定在最后 /** * 上传文件到 oss * @param {} Object Sign 签名 * @param {*} file 要上传的文件 */ export const updateFileToOSS = (sing, file) => { // console.log(file) const formData = new FormData() formData.append('key', sing.key) formData.append('OSSAccessKeyId', sing.accessid) formData.append('policy', sing.policy) formData.append('signature', sing.signature) formData.append('success_action_status', '201') formData.append('file', file) // 一定在最后 return new Promise((resolve, reject) => { axios({ method: 'POST', url: '/oss', // 设置代理了

FormData实现文件上传

旧街凉风 提交于 2019-11-27 12:54:30
我用到FormData传输的使用场景:vant UI组件里面 的图片上传这块,需要调用后台的图片上传接口,使用的是FormData方式上传的 https://www.cnblogs.com/hutuzhu/p/4409292.html 这个链接里面写的很全 FormData顾名思义就是表单数据的意思。当我们需要将整个表单用这种方法上传,只需要将整个form元素appdent进去 例如: 假设我已经有一个form表单。 let form = document.getElementById('#formData'); let formData = new FormData(); formData.append(form)调取接口的时候将整个formData作为参数 即可 首先new FormData() 方法,FormData里面的方法就只有一个append方法。意思就是将你需要上传的文件 appdent 进去 在使用vantUI的图片上传组件(Uploader)有一个after-read 的Props 我们可以拿到 file <van-uploader :after-read="afterRead" /> afterRead(file){ let formData = new FormData() formData.append(file) /* 下面请求接口

java+web+大文件上传下载

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-27 12:08:29
文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦、缺乏交互、用户体验差。 一、前端代码 英国程序员 Remy Sharp 总结了这些 新的接口 ,本文在他的基础之上,讨论在前端采用HTML5的API,对文件上传进行渐进式增强: * iframe上传    * ajax上传    * 进度条    * 文件预览    * 拖放上传 1.1 传统形式   文件上传的传统形式,是使用表单元素file,参考 http://www.ruanyifeng.com/blog/2012/08/file_upload.html : <form id="upload-form" action="upload.php" method="post" enctype="multipart/form-data" >     <input type="file" id="upload" name="upload" /> <br />     <input type="submit" value="Upload" /> </form> 所有浏览器都支持上面的代码,点击上传按钮后,网页"锁死",用户只能等待上传结束,然后浏览器刷新,跳到表单的action属性指定的网址。 1.2 iframe上传   用户点击submit时,动态插入一个iframe元素 var form = $("

web录音——上传录音文件

余生长醉 提交于 2019-11-27 09:58:51
捕获麦克风 一、 前言 公司项目需要实现web录音,刚刚好接手此功能,由于之前未接触过,在网上找了些资料做对比 ) https://www.cnblogs.com/starcrm/p/5109253.html ) https://www.cnblogs.com/shihuc/p/9703508.html ) https://www.jb51.net/html5/611409.html ) https://xiaohuazheng.github.io/2018/10/03/getusermedia/ 等等 写本博客的目为了温故而知新把学习过程记录下来,以备后查。 已经有几年没做过B/S 的项目,对HTML , jqGrid,layui 忘记的差不多了也不太熟所以看到不懂的语句就百度查 。 还是直接进入主题把,我们先了解下 Form​Data 对象的使用: https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects 通过HTML表单创建FormData对象 1 var formData = new FormData(); 2 formData.append("audioData", this.getBlob()); 3 var xhr = new XMLHttpRequest(); 4

上传200G文件

↘锁芯ラ 提交于 2019-11-27 08:01:31
最近遇见一个需要上传百G大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表格数据、上传影音文件等。如果文件体积比较大,或者网络条件不好时,上传的时间会比较长(要传输更多的报文,丢包重传的概率也更大),用户不能刷新页面,只能耐心等待请求完成。 下面从文件上传方式入手,整理大文件上传的思路,并给出了相关实例代码,由于PHP内置了比较方便的文件拆分和拼接方法,因此服务端代码使用PHP进行示例编写。 本文相关示例代码位于github上,主要参考 聊聊大文件上传 大文件切割上传 文件上传的几种方式 首先我们来看看文件上传的几种方式。 普通表单上传 使用PHP来展示常规的表单上传是一个不错的选择。首先构建文件上传的表单,并指定表单的提交内容类型为enctype="multipart/form-data",表明表单需要上传二进制数据。 然后编写index.php上传文件接收代码,使用move_uploaded_file方法即可(php大法好…) form 表单上传大文件时,很容易遇见服务器超时的问题。通过xhr,前端也可以进行异步上传文件的操作,一般由两个思路。 文件编码上传 第一个思路是将文件进行编码,然后在服务端进行解码,之前写过一篇在前端实现图片压缩上传的博客

12 django_ajax

扶醉桌前 提交于 2019-11-27 05:02:11
django_ajax AJAX ( Asynchronous Javascript And XML ) “ 异步 Javascript 和 XML” 。即使用 Javascript 语言与服务器进行异步交互,传输的数据为 XML ( 现在更多使用json数据 )。 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求; 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。 AJAX除了 异步 的特点外,还有一个就是: 浏览器页面 局部刷新 ;( 这一特点给用户的感受是在不知不觉中完成请求和响应过程) 优点: AJAX 使用 Javascript 技术向服务器发送异步请求 AJAX 无须刷新整个页面 ajax项目: 1.用户进入首页,可以点击注册和登录 2.注册页,当输入框失去焦点的时候校验输入的用户名或者手机号存在,存在的话,给出相应提示 3.注册,失败给出相应提示,成功后台将用户数据写入数据库,前端跳转至首页 4.登录,登录失败给出相应提示,成功后跳转至首页 5.实现文件的上传 HTML代码 1 <div class="action"> 2 <div class="panel panel-danger"> 3 <div class="panel-heading">2019进击的菜鸟</div> 4 <div class=

js拖拽上传图片

 ̄綄美尐妖づ 提交于 2019-11-27 04:58:49
有时候,在开发中,需要遇到拖拽上传图片的需求,即从磁盘选中一张或多张图片,然后按着鼠标把图片拖动到页面上指定的区域,实现图片的上传。 1、后端上传图片的接口 我是之前用vue写一个简单的后台系统的时候,用Java的SpringMVC+MyBatis的框架写了一个简单的后台管理的一些接口,刚好有一个上传用户头像的接口,该接口是把上传后的图片存储在另外一台Tomcat下,这里就直接使用这个接口来上传图片。 /** * 上传用户头像 * @param request * @param response */ @ResponseBody @RequestMapping(value="uploadSysHeadImg.do", method=RequestMethod.POST) public void uploadSysHeadImg(HttpServletRequest request,HttpServletResponse response){ JSONObject jo = new JSONObject(); //校验token // boolean f = tokenService.checkToken(request, response); // if(!f){ return; } try { MultipartResolver resolver = new