如何上传 Sveltekit 多个文件

pgs*_*pgs 2 javascript svelte sveltekit

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

+页面.svelte

<form
    action="?/add"
    method="post"
    enctype="multipart/form-data"
  >
<input
      multiple
      type="file"
      name="file"
      id="file"
      accept="image/*"
    />
Run Code Online (Sandbox Code Playgroud)

+页面.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 };

    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这段代码只上传一个文件。如何获取文件数组?

H.B*_*.B. 5

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

const data = await request.formData();
const files = data.getAll('file');
Run Code Online (Sandbox Code Playgroud)