亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 AdonisJS 上驗證多部分文件?

如何在 AdonisJS 上驗證多部分文件?

呼喚遠方 2021-08-20 19:14:08
我正在使用Adonis.js最新版本但無法驗證...已經嘗試過request.multipart.file('avatar', {  types: ['jpeg', 'jpg', 'png'], // I already tried -> type: ['image'] types: ['image'],  size: "4mb"  }, async file => {    await Drive.put(key, file.stream)}).../Validators/changeAvatar.js'use strict'class UserChangeAvatar {  get rules() {    return {      avatar: 'required|file|file_ext:png,jpg,jpeg,svg'    }  }}module.exports = UserChangeAvatar沒有任何作用,該代碼可讓您上傳任何類型的文件,例如.pdf或.mp4Adonis.js 文檔中也沒有談論它。套餐版本版本 4.1 "@adonisjs/framework": "^5.0.9"Node.js 和 npm 版本節點 - v10.15.0 NPM - 6.10.1
查看完整描述

1 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

驗證規則不適用于 adonis 上的分段文件上傳。您需要進行手動驗證。例如:


// Helper function

function fileStreamValidation(file, validationRules) {

  const validationErrors = []

  if (!RegExp(/^[0-9a-zA-Z_\-.]+$/).test(file._clientName)) {

    validationErrors.push(

      `${file._clientName}'s name should only contain alphanumeric, underscore, dot, hypen`

    )

  }

  if (validationRules.extnames && validationRules.extnames.length) {

    const [_, fileExtension] = file._clientName.split(/\.(?=[^.]+$)/)

    if (!validationRules.extnames.includes(fileExtension)) {

      validationErrors.push(`${file._clientName}'s extension is not acceptable`)

    }

  }

  if (validationRules.maxFileSizeInMb) {

    if (file.stream.byteCount > validationRules.maxFileSizeInMb * 1000000) {

      validationErrors.push(`${file._clientName}'s size exceeded limit`)

    }

  }

  return validationErrors

}


/* validation in controller */

const validationOptions = {

  extnames: ['in', 'out'],

  maxFileSizeInMb: parseInt(Env.get('MAX_FILE_SIZE_IN_MB'))

}

request.multipart.file('datasets[]', {}, async file => {

  const errors = fileStreamValidation(file, validationOptions)

})


查看完整回答
反對 回復 2021-08-20
  • 1 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號