【问题标题】:want to process files inside the folder subdirectories想要处理文件夹子目录中的文件
【发布时间】:2012-12-25 05:05:59
【问题描述】:

如何使用 php 脚本处理文件夹子目录中的文件。 实际上,我希望驻留在服务器本身的每个子目录中的图像文件处理并保存到另一个位置,并将文件夹名称和文件名保存在数据库中。任何人都可以帮助并提供有关如何操作此的示例脚本...

文件夹结构可能是这样的

parent folder
 sub-folder1
   img1
   img2
   img3
   .
   .
   img'n'
 sub-folder2
   img1
   img2
   img3
   .
   .
   img'n'
 sub-folder3
   img1
   img2
   img3
   .
   .
   img'n'
 .
 .
 .
 sub-folder'n'

另外如果在复制和写入数据库的过程中如何显示进度条

【问题讨论】:

  • 您可能想尝试搜索每个单独的步骤,而不是要求某人为您编写脚本。之前所有步骤都已在 Stack Overflow 上得到解答。涉及的任务是:递归迭代文件系统,检测某些文件类型,在文件系统中移动文件,向数据库插入数据。
  • 抱歉,我接受了一个答案,虽然这有助于根据我的需要进行定制,唯一剩下的就是如何在处理文件时显示进度条

标签: php


【解决方案1】:

您可以使用此功能将包含其子文件夹的文件夹从源复制到目标。

function fullCopy( $source, $target ) {
    if ( is_dir( $source ) ) {
            $d = dir( $source );
            while ( FALSE !== ( $entry = $d->read() ) ) {
                    if ( $entry == '.' || $entry == '..' ) {
                            continue;
                    }
                    $Entry = $source . '/' . $entry; 
                    if ( is_dir( $Entry ) ) {
                            @mkdir( $Entry );
                            fullCopy( $Entry, $target . '/' . $entry );
                            continue;
                    }
                    copy( $Entry, $target . '/' . $entry );
            }

            $d->close();
    }else {
            copy( $source, $target );
    }
}

在循环中,您可以执行查询以将文件名保存到数据库中。

【讨论】:

【解决方案2】:

这在http://php.net/manual/en/features.file-upload.php 中有详细描述。您可以将文件存储在任何您想要的位置。

【讨论】:

    【解决方案3】:

    您可以使用PHP glob() 来收集您的文件。将信息保存到数据库非常简单。可以通过rename() 移动文件。 MySQLi 文档中充满了有关如何与数据库通信的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 2011-10-13
      相关资源
      最近更新 更多