php - Codeigniter:在for循环中设置上传文件名

标签 php mysql codeigniter wamp

我在 Codeigniter 的 for 循环中设置上传文件名时遇到问题,我想将上传的文件(歌曲)添加到数据库和某个文件夹。我想将它们命名为 song1、song2、song3... 其中数字是歌曲在数据库中的 ID。这是我的代码:

   for ($i = 1; $i < 201; $i++) {

        if (isset($_POST['name'.$i])) {

            $maxID = $this->Song_model->maxID();
            $maxID++;
            $config['file_name'] = "song".$maxID;
            $config['upload_path'] = "./assets/uploads/";
            $config['allowed_types'] = '*';
            $config['max_size'] = 0;
            $this->load->library('upload', $config);

            if ($this->upload->do_upload('file'.$i) == true) {
                $data = array(
                    'IDArt' => $artistID,
                    'IDAlb' => $newAlbumId,
                    'songname' => $this->input->post('name'.$i),
                    'author' => $artistName,
                    'length' => $this->input->post('length'.$i),
                    'price' => $this->input->post('price'.$i)
                );
                $this->Song_model->persist($data);
            }


        }

    }

我上传的许多歌曲中的第一首歌曲获得了好听的名字示例:song11(之前数据库中有 10 首歌曲),但是在这首歌曲之后的歌曲获得了 song111、song 112 的名字。

代码段:
$maxID = $this->Song_model->maxID();
$maxID++;

获取我需要与“歌曲”连接的确切 ID,但似乎我对 $config['file_name'] = "song".$maxID; 这一行

顺便说一句。 song11, song111, song112 当文件上传名称设置为相同的值时发生,在这种情况下为“song11”

最佳答案

我终于找到了解决方案,我用函数 bool move_uploaded_file 修复了它,它可以在上传后动态更改文件名。

关于php - Codeigniter:在for循环中设置上传文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37402205/

相关文章:

php - 使用 ORM 创建嵌套关系并最小化查询

php - 有没有办法可以先执行一个 PHP 函数,然后在第一个函数之后执行另一个函数?

php - 在php站点上缓存大量页面

php - CodeIgniter 中 pconnect 选项的优点/缺点

php - 如何从模型中获取 Zend\Db\Adapter 实例? (ZF2)

php - 使用 OPCache 仅缓存特定文件

mysql - 在 2 个表上选择没有返回结果?

java - 连接到 MySQL DB : better an . ini 文件或 .bat 文件?

java - 如何在 Java 程序中包含 mysql-Server

javascript - 如何从mySQL获取数据并在Modal中查看