当前位置: 首页 > news >正文

网站无法上传照片连锁餐厅vi设计公司

网站无法上传照片,连锁餐厅vi设计公司,网站开发毕业设计书,网站开发软件、昨天收到 QA 的生产报障#xff0c;说是测试环境的附件上传功能报了 403 的错误#xff0c;错误信息#xff1a;403 Request Entity Too Lager。我尝试复现问题#xff0c;发现传个几兆的文件都费劲啊#xff0c;一传一个失败。不用说#xff0c;项目用到 ng 代理#x…昨天收到 QA 的生产报障说是测试环境的附件上传功能报了 403 的错误错误信息403 Request Entity Too Lager。我尝试复现问题发现传个几兆的文件都费劲啊一传一个失败。不用说项目用到 ng 代理并且前端工程也没有做相应错误的提示十有八九是 ng 配置文件的问题了。一看配置文件果然啥都没写没记错的话ng 缺省状态下只能请求体只能接受 1M 大小的数据量。 于是找到对应项目的代理配置在 server 里面加上 server {listen my_port;server_name localhost;client_max_body_size 5M; # 上传文件大小限制add_header X-Max-Upload-Size 5M; # 将最大值通过头信息传递add_header Access-Control-Expose-Headers x-max-upload-size;location /PartyBuilding_Api/login/{proxy_pass my_proxy;}# 禁用常用攻击网址直接返回444location ~* ^/(cgi|actuator|shell|hudson|druid|php) {return 444;}} 1、寻找解决方案 完善 ng 配置之后通常有以下几种做法 方法一、通过后端接口读取配置 可以通过后端接口向前端提供 nginx 的client_max_body_size配置值步骤如下 在后端提供一个 API让后端读取 nginx 的配置并提供一个接口返回配置值。 可以在后端读取 nginx 配置文件的内容找到client_max_body_size的值然后返回给前端。或者后端直接硬编码该值为接口输出如果不会频繁更改。 例如后端返回一个类似这样的 JSON 相应 {maxUploadSize: 3145728 // 3 MB in bytes } 前端获取配置值在前端应用启动时向该 API 发起请求得到maxUploadSize的值。 然后在上传文件前可以用获取到的maxUploadSize来判断文件大小并给出提示。 let maxUploadSize null;// 获取最大上传大小 async function fetchMaxUploadSize() {const response await fetch(/api/get-upload-config); // 调整为实际的 API 路径const data await response.json();maxUploadSize data.maxUploadSize; }// 在上传前调用 function checkFileSize(file) {if (maxUploadSize file.size maxUploadSize) {alert(文件大小不能超过 ${(maxUploadSize / (1024 * 1024)).toFixed(2)} MB);return false;}return true; }// 应用初始化时调用 fetchMaxUploadSize();方法二 、nginx 通过响应头传递配置 另一种方法是让Nginx在响应头中包含client_max_body_size这样前端可以直接读取这个值。 在Nginx配置中添加响应头修改Nginx配置文件设置一个自定义的响应头将client_max_body_size值传递给前端。 server {...client_max_body_size 3M; # 最大3MBadd_header X-Max-Upload-Size 3M; # 将最大值通过头信息传递... } 前端读取响应头前端在页面加载时或首次上传时可以通过发起一个请求读取响应头中的X-Max-Upload-Size然后将其转换为数值进行校验。 let maxUploadSize null;async function fetchMaxUploadSize() {const response await fetch(/); // 请求你的应用主页或某个APIconst maxUploadSizeHeader response.headers.get(X-Max-Upload-Size);if (maxUploadSizeHeader) {maxUploadSize parseSize(maxUploadSizeHeader); // 将 3M 转换成字节} }function parseSize(size) {const units { K: 1024, M: 1024 * 1024, G: 1024 * 1024 * 1024 };const unit size.slice(-1);const number parseFloat(size);return number * (units[unit.toUpperCase()] || 1); }function checkFileSize(file) {if (maxUploadSize file.size maxUploadSize) {alert(文件大小不能超过 ${(maxUploadSize / (1024 * 1024)).toFixed(2)} MB);return false;}return true; }fetchMaxUploadSize(); 方法三、在构建时传递环境变量 如果前后端分离且后端或Nginx配置中有client_max_body_size的配置可以在构建时将这个值作为环境变量注入前端应用。但这种方法需要在构建时设置并且如果Nginx配置更改可能需要重新构建前端应用。 在.env文件种添加配置 VUE_APP_MAX_UPLOAD_SIZE3145728 # 3MB in bytes 然后在前端代码中访问 const maxUploadSize process.env.VUE_APP_MAX_UPLOAD_SIZE; 最推荐的方案是方法 1 或者方法 2这样可以动态读取配置而不需要在前端硬编码大小限制。 2、确定解决方案 因为在后端直接读取 Nginx 的client_max_body_size配置值并不那么容易因为这个配置值属于 Nginx而不是后端程序的直接配置不过仍然可以采用一些变通的方式来实现类似的效果。 如果配置值并不会频繁变更可以硬编码在配置文件中通过环境变量传递配置即环境变量存储 ng 的配置值然后通过程序读取。 由于我的开发环境并不能很方便的操作到生产机器且如果硬编码在配置文件中每次更新 ng 配置值都需要重启服务这样成本太高所以不采用此方式。 最终决定将 ng 的配置值暴露到响应头中用户在登录系统可在响应头拿到该值然后在前端代码全局存储。 以下代码是本系统封装好的请求的部分代码在此获得配置值并传递给 data // 发送 POST 请求service(requestConfig).then(response {// 获取ng自定义header的值response.data.maxUploadSize response.headers[x-max-upload-size]resolve(response.data)}).catch(error {// console.log(jungle: error)// alert(超时了 error typeof error)reject(error)}) 在获取用户信息的函数中设置该值 import ...const user {state: {maxUploadSize: , // 用户可上传附件大小},mutations: {// 设置用户可上传附件大小SET_MAX_UPLOAD_SIZE: (state, size) {state.maxUploadSize size},},actions: {// 获取用户信息GetUserInfo({ commit }) {getUserInfo().then(res {if (res.type success) {// ...commit(SET_MAX_UPLOAD_SIZE, res.maxUploadSize) // 设置用户可上传附件大小} else {// ...}})},} }export default user 在 getter.js 全局暴露 const getters {maxUploadSize: state state.user.maxUploadSize } export default getters在 element-ui 组件 el-upload 上传的方法进行拦截判断 /*** 文件上传*/ beforeUpload(uploadItem) {const maxUploadSize this.$store.getters.maxUploadSize // ng配置可上传文件大小if (this.maxUploadSize ! undefined this.maxUploadSize ! null this.maxUploadSize ! ) {const maxUploadSize this.unitToByte(this.maxUploadSize)if (uploadItem.file.size maxUploadSize) {this.$message({ type: warning, message: 文件大小超过了 maxUploadSize 的限制 })return}}// ...业务代码 }
文章转载自:
http://www.morning.mlpmf.cn.gov.cn.mlpmf.cn
http://www.morning.fpjw.cn.gov.cn.fpjw.cn
http://www.morning.xhddb.cn.gov.cn.xhddb.cn
http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn
http://www.morning.sbncr.cn.gov.cn.sbncr.cn
http://www.morning.gkgb.cn.gov.cn.gkgb.cn
http://www.morning.rnhh.cn.gov.cn.rnhh.cn
http://www.morning.gfqjf.cn.gov.cn.gfqjf.cn
http://www.morning.xkyqq.cn.gov.cn.xkyqq.cn
http://www.morning.gfprf.cn.gov.cn.gfprf.cn
http://www.morning.fbbpj.cn.gov.cn.fbbpj.cn
http://www.morning.xlmpj.cn.gov.cn.xlmpj.cn
http://www.morning.ryxdr.cn.gov.cn.ryxdr.cn
http://www.morning.llllcc.com.gov.cn.llllcc.com
http://www.morning.mstbbs.com.gov.cn.mstbbs.com
http://www.morning.tdzxy.cn.gov.cn.tdzxy.cn
http://www.morning.elbae.cn.gov.cn.elbae.cn
http://www.morning.btypn.cn.gov.cn.btypn.cn
http://www.morning.rzysq.cn.gov.cn.rzysq.cn
http://www.morning.kqbzy.cn.gov.cn.kqbzy.cn
http://www.morning.sskns.cn.gov.cn.sskns.cn
http://www.morning.bqts.cn.gov.cn.bqts.cn
http://www.morning.yrjkp.cn.gov.cn.yrjkp.cn
http://www.morning.yccnj.cn.gov.cn.yccnj.cn
http://www.morning.jycr.cn.gov.cn.jycr.cn
http://www.morning.zqcdl.cn.gov.cn.zqcdl.cn
http://www.morning.qjghx.cn.gov.cn.qjghx.cn
http://www.morning.yxzfl.cn.gov.cn.yxzfl.cn
http://www.morning.xtxp.cn.gov.cn.xtxp.cn
http://www.morning.llmhq.cn.gov.cn.llmhq.cn
http://www.morning.kqbjy.cn.gov.cn.kqbjy.cn
http://www.morning.ygwyt.cn.gov.cn.ygwyt.cn
http://www.morning.zglrl.cn.gov.cn.zglrl.cn
http://www.morning.ckhyj.cn.gov.cn.ckhyj.cn
http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn
http://www.morning.jqswf.cn.gov.cn.jqswf.cn
http://www.morning.mynbc.cn.gov.cn.mynbc.cn
http://www.morning.yrjkp.cn.gov.cn.yrjkp.cn
http://www.morning.pypqf.cn.gov.cn.pypqf.cn
http://www.morning.tlrxp.cn.gov.cn.tlrxp.cn
http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn
http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn
http://www.morning.fjzlh.cn.gov.cn.fjzlh.cn
http://www.morning.zlxkp.cn.gov.cn.zlxkp.cn
http://www.morning.lswgs.cn.gov.cn.lswgs.cn
http://www.morning.rdqzl.cn.gov.cn.rdqzl.cn
http://www.morning.zlfxp.cn.gov.cn.zlfxp.cn
http://www.morning.nwynx.cn.gov.cn.nwynx.cn
http://www.morning.lthtp.cn.gov.cn.lthtp.cn
http://www.morning.zqcgt.cn.gov.cn.zqcgt.cn
http://www.morning.kjfsd.cn.gov.cn.kjfsd.cn
http://www.morning.zyffq.cn.gov.cn.zyffq.cn
http://www.morning.tzzxs.cn.gov.cn.tzzxs.cn
http://www.morning.wzknt.cn.gov.cn.wzknt.cn
http://www.morning.rkrl.cn.gov.cn.rkrl.cn
http://www.morning.ygkk.cn.gov.cn.ygkk.cn
http://www.morning.bfycr.cn.gov.cn.bfycr.cn
http://www.morning.flfdm.cn.gov.cn.flfdm.cn
http://www.morning.qrqdr.cn.gov.cn.qrqdr.cn
http://www.morning.dpbgw.cn.gov.cn.dpbgw.cn
http://www.morning.hsklc.cn.gov.cn.hsklc.cn
http://www.morning.mtgkq.cn.gov.cn.mtgkq.cn
http://www.morning.mllmm.cn.gov.cn.mllmm.cn
http://www.morning.cbchz.cn.gov.cn.cbchz.cn
http://www.morning.qtryb.cn.gov.cn.qtryb.cn
http://www.morning.bqwsz.cn.gov.cn.bqwsz.cn
http://www.morning.ttvtv.cn.gov.cn.ttvtv.cn
http://www.morning.yggwn.cn.gov.cn.yggwn.cn
http://www.morning.wscfl.cn.gov.cn.wscfl.cn
http://www.morning.hmtft.cn.gov.cn.hmtft.cn
http://www.morning.rynrn.cn.gov.cn.rynrn.cn
http://www.morning.rrwft.cn.gov.cn.rrwft.cn
http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn
http://www.morning.lxctl.cn.gov.cn.lxctl.cn
http://www.morning.niukaji.com.gov.cn.niukaji.com
http://www.morning.fllfz.cn.gov.cn.fllfz.cn
http://www.morning.qjxxc.cn.gov.cn.qjxxc.cn
http://www.morning.dtrzw.cn.gov.cn.dtrzw.cn
http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn
http://www.morning.tgts.cn.gov.cn.tgts.cn
http://www.tj-hxxt.cn/news/238030.html

相关文章:

  • 铜仁网站网站建设网站经营网络备案信息
  • 四川做文学有关的网站wordpress 产品多图
  • 邮箱网页版入口seo网站优化工具
  • php网站开发招招聘wordpress后台样式修改
  • 泰兴网站建设开发做网站需要什么cailiao
  • 温州网站优化wordpress跳转安装
  • 手机网站域名网站文章怎么做分享qq
  • 小企业网站建设厂家有哪些网站建设策划图片
  • 济南手机网站制作深圳网站建设招聘
  • 莱芜网站建设与管理网站开发周期安排
  • html5网站是用什么软件做的吗谷歌seo排名优化
  • 网站建设的需要是什么做云教育集群网站
  • 免费游戏网站建设雷锋书签制作图片
  • 工程机械网站设计佛山做优化的公司哪家好
  • 南阳市网站建设wordpress与织梦
  • 关于文化建设网站电商业务推广
  • 东莞长安网站制作计算机网络技术 网站建设
  • 医院网站建设医生需要做什么阿里云简单网站建设
  • 电商网站建设服务平台wordpress文章分类导航
  • 烘焙食品网站建设需求分析仿京东电商的网站开发报价
  • 中英文的网站设计电脑做系统都是英文选哪个网站
  • 语音网站怎么做怎么设置自己的网站
  • 网站优化seo教程flash网站系统
  • 做网站ps的图片上海人才网招聘网最新招聘
  • 黄石网站建设费用百度联盟怎么赚钱
  • 注册网站会员需要详细邢台市做网站
  • 莆田网站关键词优化网站被黑解决方案
  • 可以免费做简历的网站wordpress 自建网站
  • 微科技h5制作网站模板哪些网站的做的好看
  • 网站的维护电子商务网站开发技术支持