Php 如何在csv中保存列表图像url中的图像
我想将url中的图像保存到我的目录中,并在下载到csv后保存其图像名称 我编写了以下存储图像的代码。但它没有像我想要的那样工作。 在下面的代码中,$img是从csv获取url的变量 假设我有1000多个csv产品,每个产品都有像这样的图片url www.example.com/images/image1.jpg 因此,我想将此图像下载到本地目录/服务器目录,并在下载到csv文件后存储其图像名称,这样我就可以只将图像名称添加到数据库表中Php 如何在csv中保存列表图像url中的图像,php,image,file,csv,Php,Image,File,Csv,我想将url中的图像保存到我的目录中,并在下载到csv后保存其图像名称 我编写了以下存储图像的代码。但它没有像我想要的那样工作。 在下面的代码中,$img是从csv获取url的变量 假设我有1000多个csv产品,每个产品都有像这样的图片url www.example.com/images/image1.jpg 因此,我想将此图像下载到本地目录/服务器目录,并在下载到csv文件后存储其图像名称,这样我就可以只将图像名称添加到数据库表中 设置时间限制(1000); 而($url=$respons
设置时间限制(1000);
而($url=$response->fetch()){
$my\u image=文件获取内容($img);
$my_file=fopen('/csvfiles/','w+');
fwrite($myu文件,$myu图像);
fclose($myu文件);
}
尝试以下代码
set_time_limit(1000);
while ($url = $response->fetch()) {
$my_image = file_get_contents($img);
// check stricly that you have content of image
if ($my_image !== false) {
// download the image and store in the database.
$my_file = fopen('/csvfiles/', 'w+');
fwrite($my_file, $my_image);
fclose($my_file);
}
}
您还需要一个文件名,而不仅仅是一个目录:
// download the inage from the internet:
$my_image = file_get_contents($url);
// get filename from url:
$filename = basename($url);
$path = '/csvfiles/' . $filename;
// save image to that file:
$my_file = fopen($path,'w+');
fwrite($my_file, $my_image);
fclose($my_file);
// save $filename to DB
嗨,下面的代码对我有用。。希望它能帮助别人 谢谢@Gavriel和@Alankar
if(!empty($img)){
$my_image = file_get_contents($img);
file_get_contents(filename)
$filename = $data[0] . ".jpg";
echo $filename. "\n";
if(!file_exists($filename))
{
$my_file = fopen($filename,'w+');
file_put_contents($filename, $my_image);
echo $filename . "\n";
}
}
$image = "/uploads/" . $filename;
echo $image . "\n";
这里$img
存储图像的url。这是从csv文件获取的
这里的
数据[0]
是用于唯一存储图像名称的csv列。所以我们可以使用file_exists()代码>否则,每当我一次又一次地运行脚本时,它会一次又一次地存储图像,并按随机临时名称存储 csv文件的可能副本在这里真的很重要吗?我认为,上面的评论应该会有所帮助。是的,csv文件很重要。。由于我有csv格式的所有产品信息,在导入产品时,我还想从其url下载图像。而且无法手动下载1000+个产品图像。我检查了上述解决方案,但它不适用于这种情况。在上面的解决方案中,他们只从特定的页面下载图像,并直接重命名它。所以这里的情况不同。这里的$response是什么?或者它应该是$img,用于存储来自csv的图像url。。请确认。代码将帮助您确保您拥有来自URL的图像,如果没有,则您决定将存储在CSV文件中的内容,而不是图像文件名。请说出文件的默认名称或noimage.jpg等。我尝试了此解决方案,但遇到致命错误PHP致命错误:调用成员函数fetch()非对象致命错误:对非对象的成员函数fetch()的调用$response
未定义请检查之前的行,而$response
不为空。这应该是您的记录资源。您好@Gavriel这对我很有用,但我不想更改图像的原始名称,因为它包含产品信息。因此,有没有一种方法或替代方法不使用tempnam()并使用原始名称保存图像。