微信小程序上传文件小结

前言后端用的是Rails ActiveStorage direct_upload的处理方式, 前端被要求: 提供文件的MD5-Base64校验值,获得上传地址;将文件上传到上述指定地址(此处会校验文件的MD5-Base64值是否与上一步给的一致);将文件的signed_id作为文件参数。相关知识因为目前开发任务重且紧,暂时略过此部分,只记录结论要点,后续有时间再补充相关知识 要点小结3.0 上传文件(后端 Rails: activeStorage)Step 1: 计算文件MD5-Base64摘要小程序中前端无法获取文件的Binary格式,因此无法自行或使用第三方库来计算文件的MD5值,但幸运的是,小程序也提供了API来做这件事,请使用:wx.getFileInfo将获得的MD5值转为Base64格式。可使用此项目中utils/base64.js的encode方法,该方法适用于转换字符串。也可使用CryptoJS库,需要注意的是,CryptoJS.enc.Base64.stringify需要的参数是WordArray格式,不能直接传String,要先用CryptoJS.enc.Utf8.parse转换一下字符串Step 2: 上传文件到上一步返回的指定direct_upload地址小程序前端无法直接获得文件的Binary格式传给后端,但可以通过wx.uploadFile上传文件,通过此接口发送请求,后端可获取到文件Binary格式后端提供的上传文件接口需符合wx.uploadFile的要求,即请求方式为POST, 并指定所需文件key名(而不是直接要求把Binary文件丢在请求body中)

June 7, 2019 · 1 min · jiezi

解决 php 无法上传档案大小更高的档案(修改 php.ini 上传限制)

本教学使用环境介绍伺服器端:Ubuntu 16.04资料库:Mariadb 10.1.34(Mysql)语言版本:php 7.0本机端:MacOS High Sierra在上传档案的时候发生了一件事就是怎么某些档案无法上传成功?而且这些档案都是特别大的超过 8M 以上?于是去 stackoverflow 找到了答案前往「php.ini」修改上传限制就行了macos 的php.ini路径:/etc/php.iniubuntu 的php.ini路径:/etc/php/7.0/apache2找到后先搜寻 upload_max_filesize单挡上传大小上限,我在这里设定为 1Gupload_max_filesize = 1000M之后再找 post_max_size此为全部的 post 档案合计的大小上限,我这里设定为 50Gpost_max_size = 50000M依照你的需求做变更也别忘了修改记忆体上限 memory_limit我在另一篇设定为 -1memory_limit = 512M记得如果有使用 mysql, mariadb会将 mysql.connect_timeout 设定为 -1 为永不断线mysql.connect_timeout = -1最后别忘了重启 apachesudo apachectl restartLine ID:ianmacQQ:1258554508

April 13, 2019 · 1 min · jiezi