我目前正在上传多个文件,每个生成的名称都通过表单字段传递。我现在遇到的问题是因为我要上传多个文件,所以我需要动态表单字段。
例如上传单个图像 - 我没有遇到问题
HTML
<input type="hidden" name="item-id" id="item-id" value="1234">
<input type="hidden" name="fileName" id="fileName" value="zeahgvyg">
模板
"store_original": {
"robot": "/s3/store",
"use": [
":original"
],
"key": "xxxxxxxxxx",
"secret": "xxxxxxx",
"bucket": "mybucket",
"path": "${fields.item-id}/${fields.fileName}_original.${file.ext}"
},
文件路径结果:
1234/zeahgvyg_original.jpg
现在上传多张图片 - 我现在遇到了麻烦
由于文件的数量取决于用户,我将通过 JS 进行检查,并在表单字段中附加它们生成的名称
JS
// fileuploaded : cat_thumbnail.jpg
// then process to get file basename
// fileName = cat_thumbnail
var fileGeneratedName = "newfilename";
var newInput = $("<input type='hidden' name='"+fileName+"' id='"+fileName+"' value='"+fileGeneratedName+"'/>");
$('#hiddenFileNames').append(newInput);
模板
"store_original": {
"robot": "/s3/store",
"use": [
":original"
],
"key": "xxxxxxxxxx",
"secret": "xxxxxxx",
"bucket": "mybucket",
"path": "${fields.item-id}/${fields.${file.basename}}_original.${file.ext}"
},
所以很明显那条行不通的就是这条
"path": "${fields.item-id}/${fields.${file.basename}}_original.${file.ext}"
我现在的问题是我应该如何根据文件名调用表单字段?
其他变量的参考:https ://transloadit.com/docs#assembly-variables
${file.ext} and ${file.basename}