【问题标题】:How To upload Sveltekit multiple files如何上传 Sveltekit 多个文件
【发布时间】:2022-10-13 17:25:46
【问题描述】:

在新的 svelteKit 中,我无法使用表单 multipart/form-data 和多个属性上传多个文件

+page.svelte

<form
    action="?/add"
    method="post"
    enctype="multipart/form-data"
  >
<input
      multiple
      type="file"
      name="file"
      id="file"
      accept="image/*"
    />

+page.server.js

export const actions = {
  add: async ({ request, files }) => {
    const data = await request.formData()
  
    const file = data.get('file')

    let filename

    try {

      if (file) {

        const ext = file.name.split('.').pop()
        filename = userName + '-' +Date.now().toString() + '.' + ext
        
        let ab = await file.arrayBuffer()
        console.log(Array.from(ab));

        writeFileSync(`static/img/${filename}`, Buffer.from(ab, (e) => {
          console.log(e)
        }))
      }


      return { success: true }


    } catch (e) {
      console.log(e);
      return { success: false };

    }
  }
}

此代码仅上传一个文件。如何获取文件数组?

【问题讨论】:

    标签: javascript svelte sveltekit


    【解决方案1】:

    如果为同一个字段名称提供了多个值,则可以使用 getAll 函数:

    const data = await request.formData();
    const files = data.getAll('file');
    

    【讨论】:

    • 伟大的!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2012-04-22
    • 2016-08-10
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多