我有一个通过表单上传图片的脚本。我想从:
<input type="file" name="img_1_upload" class="text">
<input type="file" name="img_2_upload" class="text">
<input type="file" name="img_3_upload" class="text">
<input type="file" name="img_4_upload" class="text">
<input type="file" name="img_5_upload" class="text">
<input type="file" name="img_6_upload" class="text">
通过以下方式使用多重上传输入类型:
<input name="images[]" id="filesToUpload" type="file" multiple="" />
我的PHP脚本检测到使用names = img_1_upload,img_2_upload,img_3_upload输入的图像......一直到img_6_upload ......
但是使用多文件输入类型,我无法将每个文件的名称设置为img_1_upload,..等格式。
处理此问题的最佳方法是什么?
答案 0 :(得分:1)
您是否尝试过move_uploaded_file()功能?无论如何,上传的文件都是临时文件。您可能需要将它们移动到更合适的位置。在移动时,您还可以将文件重命名为您想要的任何内容。
P.S:我假设您知道可以使用$_FILES["images"]["name"][index]
访问文件的名称,其中index是从0到文件数的数组索引 - 。
P.S2:还要确保您的表单具有多个文件的enctype="multipart/form-data"
属性。
答案 1 :(得分:0)
$ _ FILES数组包含上传文件的信息。上传多个文件时,$ _FILES的结构如下; 阵列
(
[name] => Array
(
[0] => foo.txt
[1] => bar.txt
)
[type] => Array
(
[0] => text/plain
[1] => text/plain
)
[tmp_name] => Array
(
[0] => /tmp/phpYzdqkD
[1] => /tmp/phpeEwEWG
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 123
[1] => 456
)
)
然后,您可以使用简单的foreach()
循环重命名文件。