批量下载远程图片 - 支持单个 ID 下载

本工具可批量下载网站远程图片,并支持单个 ID 下载功能。您可以选择下载所有图片、失败图片或进行失效图片检测。

代码示例

{#if $action == 'down'#}
    <h3 class='title'><em>{#$pagetitle#}</em><span><a href='{#$fileurl#}'>返回列表&raquo;</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>&nbsp;</th>
			<td colspan='2'>
			<input type='button' class='btn' value='下载所有站点图片' onClick='window.location.href='webpic.php?act=down&type=all';'>&nbsp;
			<input type='button' class='btn' value='下载失败图片' onClick='window.location.href='webpic.php?act=down&type=part';'>&nbsp;
                <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>';
}

修改说明

  1. 添加了对单个 ID 下载的支持。
  2. 在代码中添加了一个新的参数 web_id,用于指定要下载的图片 ID。
  3. 如果 web_id 参数存在,则只下载该 ID 的图片;否则,按照原来的逻辑下载所有图片。

使用方法

  1. 在浏览器地址栏中输入以下 URL,即可下载所有图片:
http://你的网站地址/webpic.php?act=down&type=all
  1. 在浏览器地址栏中输入以下 URL,即可下载失败图片:
http://你的网站地址/webpic.php?act=down&type=part
  1. 在浏览器地址栏中输入以下 URL,即可下载指定 ID 的图片:
http://你的网站地址/webpic.php?act=down&web_id=123

其中,123 是要下载的图片 ID。

注意

  1. 本工具需要在服务器上运行。
  2. 下载远程图片会占用一定的服务器资源,请避免在白天流量高峰期时段使用。

希望以上信息能够帮到您!

批量下载远程图片 - 支持单个 ID 下载

原文地址: https://www.cveoy.top/t/topic/qz3i 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录