首页 > 数据库技术 > 详细

Linux+PHP遍历文件夹下所有文件,插入数据库

时间:2019-08-14 18:35:58      阅读:163      评论:0      收藏:0      [点我收藏+]

需求:某文件夹下的所有.jpg文件插入数据库中,只存文件路径和文件名.

一.Linux下操作

1.awk安装
sudo apt-get install -y gawk

2.调用find命令遍历文件夹下所有.jpg文件,把遍历的文件路径写到一个文件里(加 | sort 是为了find的结果自然排序,否则find的结果很乱)

find /home/abc/test/ -name "*.jpg" | sort > /home/abc/find_abc_test.txt

3.awk整理路径文件,拼装成sql语句(awk拼装sql根据个人情况,我这里分隔符时/和.)

awk -F ‘[\/.]‘ ‘{now=systime();nt=strftime("%Y",now)"-"strftime("%m",now)"-"strftime("%d",now)" "strftime("%T");print "INSERT INTO `your_database_name`.`your_table_name` (file_title,file_name,file_path,create_time,update_time)  VALUES (\""$8"\",\""$8"."$9"\",\""$6"/"$7"/"$8"."$9"\",\""nt"\",\""nt"\");"}‘ /home/abc/find_abc_test.txt > /home/abc/sql_abc_test.sql

可以先中命令行里试试awk分隔后的各个块是什么,比如

awk -F ‘[\/.]‘ ‘{print $1}‘ /home/abc/find_abc_test.txt

4.mysql导入sql文件,数据库名your_database_name

mysql -uroot -proot your_database_name </home/abc/sql_abc_test.sql

到此,已经把想要的数据插入数据库.

二.Linux+PHP

用PHP操作,用exec()方法,把上面的命令都拼成字符串,注意引号用\.

例:($your_dir_path被遍历文件夹路径,因为浏览器拿不到文件夹真实路径,所以$your_dir_path我是事先存数据库中的)

$your_command_str = ‘find ‘ . $your_dir_path . ‘/ -name "*.jpg" | sort > /home/abc/find_abc_test.txt‘;

exec($your_command_str);

其余命令以此类推,注意操作时涉及到的文件夹给好相应的权限,还有owner问题.

注意把执行时间调无限

ini_set(‘max_execution_time‘,‘0‘);

Linux+PHP遍历文件夹下所有文件,插入数据库

原文:https://www.cnblogs.com/aumid47/p/11353824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!