formdata

Asp.net core前后台交互

♀尐吖头ヾ 提交于 2019-12-15 15:54:14
当前台传参为Requset Payload时: 后台需要在参数列表中加[FromBody] [Route("/create"))] public string Create([FromBody] Model model) { } 或者用流来进行接收 using (var bufferStream = new MemoryStream()) { Request.Body.CopyToAsync(bufferStream); byte[] buffer = bufferStream.ToArray(); string param = System.Text.Encoding.UTF8.GetString(buffer); Model model = JsonConvert.DeserializeObject<Model>(param); } 当前台传参为FormData时: 直接在参数列表中映射实体类 [Route("/create"))] public string Create(Model model) { } 两者的区别: 当POST请求的请求头里设置Content-Type: application/x-www-form-urlencoded(ajax默认), 参数在请求体以标准的Form Data的形式提交,以&符号拼接,参数格式为key=value&key=value

大话APP配置功能的设计和落地

与世无争的帅哥 提交于 2019-12-15 01:24:51
在参与各种app业务开发的过程中,大部分都会遇到需要对某些功能/界面/数据可以灵活的管理后台控制,客户端根据配置变化而变化,不需要发版本就可以解决这些需求,大致功能需求就是需要提供一个后台功能,能够给产品/运营童鞋进行配置管理,然后通过服务端接口输出给客户端进行逻辑/渲染使用,这里针对这种场景,分享一个相对通用的解决方案 项目背景 当前项目中针对这种配置的需求,每次都需要开发人员重新开发后台表单,然后修改配置接口针对配置进行输出,因为这个功能的开发要归宿到很早以前,也不知道当初为啥要这么做,现在存在的问题就是不容易维护和拓展,以及重复开发的成本 整理需求 配置管理后台 支持版本控制 支持客户端类型(安卓/IOS/所有) 表单可配置 配置输出接口 增量下发 保证高可用,高稳定,高性能 客户端 接口下发配置数据进行缓存 技术背景 管理后台:php服务端+jquery+bootstrap 接口项目:php服务端 技术过程 前端技术选型: vuejs element ui 核心问题,如何后台配置生成表单(开发人员来配置)? 初步计划是通过配置表单的JSON生成element ui的表单,进行了一些调研,也找到可以通过配置JSON生成element ui表单的js库,感觉灵活性差了些,而且当时还不支持富文本,感觉后续拓展也是大问题,所以弃用,后面尝试自己来实现,通过vuejs+element

layui中实现上传图片压缩

£可爱£侵袭症+ 提交于 2019-12-14 19:08:35
一、关于js上传图片压缩的方法,百度有很多种方法,这里我参考修改了一下: function photoCompress(file, w, objDiv) { var ready = new FileReader(); /* 开始读取指定的Blob对象或File对象中的内容. 当读取操作完成时,readyState属性的值会成为DONE,如果设置了onloadend事件处理程序,则调用之.同时,result属性中将包含一个data: URL格式的字符串以表示所读取文件的内容. */ ready.readAsDataURL(file); ready.onload = function () { var re = this .result; canvasDataURL(re, w, objDiv); } }; function canvasDataURL(path, obj, callback) { var img = new Image(); img.src = path; img.onload = function () { var that = this ; // 默认按比例压缩 var w = that.width, h = that.height, scale = w / h; w = obj.width || w; h = obj.height || (w / scale);

js文件上传

家住魔仙堡 提交于 2019-12-14 03:30:04
步骤: 1.首先获取input对象 2.为input对象绑定onchange事件 3.获取上传的文件:var file = fileInput.files[0] 4.将获取的文件添加到FormData对象中 5.发送ajax请求:      FormData:如果要用 Ajax 上传文件,则需要使用 FormData 对象来作为数据,而不能使用 form 的 serialize 方法(原因是 serialize 方法得到的数据是一个字符串,其不支持二进制数据传输,因此无法上传文件)   cache:当发起一次请求后,会把获得的结果以缓存的形式进行存储,当再次发起请求时,如果 cache 的值是 true ,那么会直接从缓存中读取,而不是再次发起一个请求了。   从 cache 的工作原理可以得出,cache 的作用一般只在 get 请求中使用。   processData:处理数据:默认情况下,processData 的值是 true,其代表以对象的形式上传的数据都会被转换为字符串的形式上传。而当上传文件的时候,则不需要把其转换为字符串,因此要改成false   contentType:发送数据的格式"和 contentType 有个类似的属性是 dataType , 代表的是期望从后端收到的数据的格式,一般会有 json 、text……等. 而 contentType 则是与

js大文件分块上传断点续传demo

大兔子大兔子 提交于 2019-12-13 01:18:34
文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠。网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹。今天研究了一下这个问题,在此记录。 先说两个问题: 是否所有后端框架都支持文件夹上传? 是否所有浏览器都支持文件夹上传? 第一个问题:YES,第二个问题:NO 只要后端框架对于表单的支持是完整的,那么必然支持文件夹上传。至于浏览器,截至目前,只有 Chrome 支持。 如果需要其它的浏览器支持则需要借助于插件,比如泽优大文件上传控件: www.webuploader.net 关于WebUploader的功能说明: 大文件上传续传 支持超大文件上传(100G+)和续传,可以关闭浏览器,重启系统后仍然继续上传。 开源 提供ASP.NET,JSP,PHP示例和源代码,其中JSP提供MySQL,Oracle,SQL Server数据库的配置和示例代码。 分片、并发 分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度。 当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。 预览、压缩 支持常用图片格式jpg,jpeg,gif,bmp,png预览与压缩,节省网络数据传输。 解析jpeg中的meta信息

使用uploadify插件进行多文件上传时如何传递表单参数

Deadly 提交于 2019-12-11 15:33:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Uploadify是一个Jquery框架下处理批量文件上传的插件,支持多种服务器端软件。 问题 :在使用uploadify进行文件上传时,由于需要对每个文件进行说明,而不仅仅是把文件上传至服务器。 解决思路及过程 :使用插件上传时,如果需要传递参数, 第一种尝试 是通过url进行传递,也就是通过uploadify中的uploader属性进行参数的添加。 'uploader' : ' url &test='+$("#remark").html(),但是很奇怪这种写法在后台通过request.getParamter(" test ")就是获取不到值。这种方法行不通。 第二种尝试 然后只能另找方式,通过formData进行传值,通过uploadify中的formData属性,进行传值。 'formData' : {'test1': $("#remark").html() }, 后台通过request.getParamter("test1 ")还是获取不到值。 第三种尝试 在onUploadStart时添加一下代码 , onUploadStart:function(file){ $( "#file_upload" ).uploadify ( "settings" , "formData" , { 'tmpdir': $

前端图片上传几种方式

不羁岁月 提交于 2019-12-10 17:38:31
一、.html表单上传(不推荐) 最传统的图片上传方式是form表单上传,使用form表单的input[type=”file”]控件,打开系统的文件选择对话框,从而达到选择文件并上传的目的。 form表单上传。表单上传需要注意以下几点: 1、.提供form表单,method必须是post。 2、form表单的enctype必须是multipart/form-data。 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码。HTML表单如何打包数据文件是由enctype这个属性决定的。 enctype有以下几种取值: 1 2 3 4 application/x-www-form-urlencoded:在发送前编码所有字符(默认)(空格被编码为’+’,特殊字符被编码为ASCII十六进制字符)。 multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。 text/plain:空格转换为 “+” 加号,但不对特殊字符编码。 默认enctype=application/x-www-form-urlencoded,所以表单的内容会按URL规则编码,   (3).提供input type=

vue 配置 TinyMCE

时间秒杀一切 提交于 2019-12-10 01:23:31
1、index.html 增加cdn 地址   <script src="//cdn.bootcss.com/tinymce/5.0.16/tinymce.min.js"></script> 2、组件目录创建编辑器的组件   cd components   touch tinymce-editor.vue   创建内容:    <template> <div class="tinymce-editor"> <editor v-model="myValue" :init="init" :disabled="disabled" @onClick="onClick"> </editor> </div> </template> <script> import tinymce from 'tinymce/tinymce' import Editor from '@tinymce/tinymce-vue' import 'tinymce/themes/silver/theme' import 'tinymce/plugins/image' import 'tinymce/plugins/media' import 'tinymce/plugins/lists' import 'tinymce/plugins/wordcount' import 'tinymce/plugins

POST模拟请求案例

烂漫一生 提交于 2019-12-08 09:29:06
本小案例,通过有道词典的查询,模拟post请求的过程: 在浏览器和服务器交互过程中Get和Post的区别 Get:请求URL会附带查询参数; POST:请求的URL不带参数; 对于Get的请求:查询参数在QueryString里面保存 对于Post请求:查询参数在Form表单里面保存 程序中的url,headers,formdata表单是通过Fiddler网络抓包获取的;因为有道网页会反爬虫,相关的表单参数会又所变化。说以要学会在Fiddler种灵活获取相关的表单。 表单在sublime text环境下操作比较方便,正则表达式批量替换,其中^:行开头,$:行尾(这样表示是以每一行的形式替换的) ^(.*)=(.*)$ "\1":"\2", 如果中间有空格的话,用\s 实现例程如下: #!/usr/bin/env python # coding=utf-8 import urllib import urllib2 #通过抓包方式获取的url地址,不是浏览器上的 url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule" headers={ #"connection":"keep-alive", # "accept":"application/json, text/javascript, */*;

TP5框架 《使用PHPExcel 导入Excel表格到数据库》

只愿长相守 提交于 2019-12-07 05:23:54
先从我的Github上,下载PHPExcel类扩展: https://github.com/hujinchen/PHPexcel/tree/master 然后去TP框架的 extend 文件夹下新建个文件夹命名为 phpexcel,把下载下来的文件放到这目录下 前端代码: //html <div style="display: inline-flex;position: relative;"> <button class="layui-btn layui-bg-cyan" id='uploadExcel'><i class="layui-icon"></i>一键导入</button> <form id="uploadForm" enctype="multipart/form-data"> <input style="opacity:0;width:113px;height:38px;position:absolute;right:0;top:0;" id="files" type="file" name="file" accept=".csv, .xls, .xlsx" /> </form> </div> //js <script type="text/javascript"> $("#files").on("change", function (e) { var file =