0

我有一个通过表单上传图像的脚本。我想从:

<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 脚本检测输入的图像名称 = img_1_upload,img_2_upload,img_3_upload... 一直到 img_6_upload...

但是,使用多文件输入类型,我无法将每个文件的名称设置为 img_1_upload、.. 等格式。

处理这个问题的最佳方法是什么?

4

2 回答 2

1

您是否尝试过move_uploaded_file()功能?上传的文件无论如何都是临时文件。您可能需要将它们移动到更合适的位置。移动时,您还可以将文件重命名为您想要的任何名称。

PS:我假设您知道可以使用$_FILES["images"]["name"][index]where index 是从 0 到文件数 - 1 的数组索引来访问文件的名称。

P.S2:还要确保您的表单具有enctype="multipart/form-data"多个文件的属性。

于 2012-12-28T22:47:01.460 回答
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()循环根据需要重命名文件。

于 2012-12-28T22:55:08.283 回答