批量下载远程图片 - 支持单个 ID 下载
批量下载远程图片 - 支持单个 ID 下载
本工具可批量下载网站远程图片,并支持单个 ID 下载功能。您可以选择下载所有图片、失败图片或进行失效图片检测。
代码示例
{#if $action == 'down'#}
<h3 class='title'><em>{#$pagetitle#}</em><span><a href='{#$fileurl#}'>返回列表»</a></span></h3>
<div class='formbox'>
<form name='mform' method='post' action='{#$fileurl#}'>
<table width='100%' border='0' cellspacing='1' cellpadding='0'>
<tr>
<th>注意事项:</th>
<td>下载远程图片,将占用一定的服务器资源,请避免在白天流量高峰期时段使用</td>
<tr class='btnbox'>
<th> </th>
<td colspan='2'>
<input type='button' class='btn' value='下载所有站点图片' onClick='window.location.href='webpic.php?act=down&type=all';'>
<input type='button' class='btn' value='下载失败图片' onClick='window.location.href='webpic.php?act=down&type=part';'>
<input type='button' class='btn' value='失效图片检测' onClick='window.location.href='webpic.php?act=check';'>
</td>
</tr>
</table>
</form>
</div>
{#/if#}
/** download */
if ($action == 'down') {
$pagesize = 3;
$curpage = $curpage + 1;
$where = 'web_status=3';
if ($type == 'part') {
$where .= ' AND web_pic=''';
}
$websites = $DB->fetch_all('SELECT web_id, web_name, web_url FROM $table WHERE $where ORDER BY web_id DESC LIMIT $start, $pagesize');
$totalnum = $DB->get_count($table, $where);
$totalpage = @ceil($totalnum / $pagesize);
$fileurl = '{$fileurl}';
$action = '{$action}';
$type = '{$type}';
$curpage = '{$curpage}';
$start = '{$start}';
$pagesize = '{$pagesize}';
// 添加支持单个 ID 下载的功能
// 1. 添加一个新的参数 web_id
// 2. 判断是否有 web_id 参数,如果有,则只下载该 ID 的图片
// 3. 如果没有 web_id 参数,则按照原来的逻辑下载所有图片
if(isset($_GET['web_id'])){//检查是否传入了单个ID
$web_id = $_GET['web_id'];
$websites = $DB->fetch_all('SELECT web_id, web_name, web_url FROM $table WHERE web_id = $web_id');
}
echo '<div style='font-size: 12px; line-height: 25px; padding: 10px;'>';
if ($curpage <= $totalpage) {
$savepath = '../'.$options['upload_dir'].'/website/';
echo '<meta http-equiv='refresh' content=3;url=''.$fileurl.'?act='.$action.'&type='.$type.'&page='.$curpage.''>';
echo '<h3>共需采集 '.$totalpage.' 页,每次下载 '.$pagesize.' 张,当前第 '.$curpage.' 页,正在下载远程图片...</h3>';
foreach ($websites as $row) {
$filepath = save_to_local(str_replace('/', '.', $row['web_url']), $savepath);
$filesize = filesize($filepath);
if ($filesize < 10240) {
$newpath = str_replace('../image/', '', $filepath);
if (!empty($newpath)) {
$status = '下载成功!';
$DB->update($table, array('web_pic' => $newpath), array('web_id' => $row['web_id']));
} else {
$status = '下载失败!';
}
} else {
$status = '文件大小超过限制!';
}
echo $row['web_id'].' - '.$row['web_name'].' ------ '.$status.'<br />';
}
echo '<h3>本页已采集完成,5秒后将自动采集下一页...<h3>';
} else {
echo '<h3>已经将所有的远程图片本地化!</h3>';
}
echo '</div>';
}
修改说明
- 添加了对单个 ID 下载的支持。
- 在代码中添加了一个新的参数
web_id,用于指定要下载的图片 ID。 - 如果
web_id参数存在,则只下载该 ID 的图片;否则,按照原来的逻辑下载所有图片。
使用方法
- 在浏览器地址栏中输入以下 URL,即可下载所有图片:
http://你的网站地址/webpic.php?act=down&type=all
- 在浏览器地址栏中输入以下 URL,即可下载失败图片:
http://你的网站地址/webpic.php?act=down&type=part
- 在浏览器地址栏中输入以下 URL,即可下载指定 ID 的图片:
http://你的网站地址/webpic.php?act=down&web_id=123
其中,123 是要下载的图片 ID。
注意
- 本工具需要在服务器上运行。
- 下载远程图片会占用一定的服务器资源,请避免在白天流量高峰期时段使用。
希望以上信息能够帮到您!
原文地址: https://www.cveoy.top/t/topic/qz3i 著作权归作者所有。请勿转载和采集!