admin管理员组文章数量:1390677
In new svelteKit i cant upload multiple files with form multipart/form-data and multiple attribute
+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 };
}
}
}
This code upload only one file. How can I get an array of files?
In new svelteKit i cant upload multiple files with form multipart/form-data and multiple attribute
+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 };
}
}
}
This code upload only one file. How can I get an array of files?
Share Improve this question asked Oct 13, 2022 at 8:59 pgspgs 331 silver badge3 bronze badges 2-
Hi @pgs, I am trying something similar. However, I get
file.arrayBuffer is not a function
withformData = await request.formData(); const file = formData.get(
csvFile)
. The file object does not have an array buffer method. – sryscad Commented Oct 17, 2022 at 14:23 -
@sryscad
const data = await request.formData()
>const file = data.get('file')
>if (file instanceof Blob && file.size) {}
>const imageData = new Uint8Array(await file.arrayBuffer())
>await fs.promises.writeFile(
src/images/test.jpg, imageData)
nodejs/api/all.html#all_buffer_blobarraybuffer – gmustudent Commented Feb 9, 2023 at 9:59
1 Answer
Reset to default 6There is a getAll
function you can use if multiple values have been supplied for the same field name:
const data = await request.formData();
const files = data.getAll('file');
本文标签: javascriptHow To upload Sveltekit multiple filesStack Overflow
版权声明:本文标题:javascript - How To upload Sveltekit multiple files - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744741473a2622633.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论