2011-10-03 108 views
0

我有一个非常大的记录表(约30,000),其中包括一个ID作为主键。我需要为每个记录创建一个文件夹,并在每个文件夹中放置一个图像(图像url保存在表格内)。任何想法如何做到这一点?从mySql ID创建文件夹并在其中插入数据

回答

2
$sql = "SELECT id, url FROM yourtable"; 
$result = mysql_query($sql) or die(mysql_error()) { 
while($row = mysql_fetch_assoc($result)) { 
    mkdir("/path/to/location/{$row['id']}"); 
    file_put_contents(file_get_contents($url), "/path/to/location/{$row['id']}/image.jpg"); 
} 

连接到数据库,挑选出合适的文件名,和最肯定增加了一些错误处理,等等......就留给读者做练习。

1

使用你最喜欢的脚本语言,只是循环记录,创建目录和下载图像。在大多数脚本语言中,它不应该超过几行代码。

+1

也许他没有'喜欢的脚本语言'这样的东西;) –

+1

Laurent,然后(他)可以选择一个。不要花太多时间去学习一个人的基础知识,这对于做这种工作的人来说肯定是有用的技能,所以时间已经耗费了。 –

+0

@laurent - 他(他)也不太可能有'没有'最喜欢的或期望的语言,因为他/她显然需要创建文件夹用于图像存储和可能的网络显示,因为他们说明URL。最终,我没有看到为每个图像(或记录)创建独特的文件夹的重点,但是我没有在我面前展示完整的项目范围来指出其他情况。 – JM4

0

如果你能够让包含ID和网址列的CSV文件,说:

User204293,http://mywebsite.org/thepath/myavatar.png 

您可以使用下面的Perl代码段的变化:

#!/usr/bin/perl 
$DestRoot="/my/path/to/the/folders/"; 

open(IN,shift) or die; 

while($line=<IN>){ 
    if ($line =~ m/^([^,]+),(http:\S+)/){ 
    my($id,$avatar)=($1,$2); 
    mkdir($DestRoot.$id); 
    chdir($DestRoot.$id); 
    `wget $avatar`; 
    } 
} 
close(IN); 

,并用它使

perl abovescript.pl myCSVfile.csv 

Marc B指出的建议也适用!

+0

你能告诉我如何从php中的mysql查询结果中生成csv文件吗?此外,可以使用文本文件和DOS批处理完成相同的操作吗?(文本文件包含用户名和图像url) – user1788736

相关问题