Автоматическое создание файла .CSV для Veppa
Сегодня решил сделать массовую загрузку изображений для CMS Veppa, посмотрел стандартный код загрузчика, а именно отвечающего за массовую загрузку картинок с помощью файла .CSV. Вобщем все очень интересно сделано и продумано по безопасности, что не хотелось бы что то менять и тут появилась идея об автоматической генерации файла insert.csv и использования стандартного загрузчика. Все оказалось очень просто и понятно и в тоже время нет необходимости прибегать к правки стандартного кода.
Вся суть решения генерации очень проста. Нужно открыть папку /insert/images/ и взять все картинки которые в ней находятся, далее открыть файл .csv и записать в него массив изображений.
Вот собственно и сам модуль, создайте файл training.php со следующим содержанием
Загрузите файл в корневую директорию сайта
Перейдите по адресу
Введите название и теги для картинок, нажмите на кнопку подготовки и следуйте сообщениям скрипта.
ПС. Один и тот же файл можно генерировать только один раз, если вы его обновите дважды или больше, то в файл добавятся такие же строки которые вы сгенерировали совсем недавно.
После того как вы сгенерировали файл и добавили картинки в базу данных, файл insert.csv удаляется вместе с картинками в папке images. Так что последующие ваши действия при загрузке картинок будут всего лишь загрузка новых картинок в папку images, файл insert.csv создается автоматически.
Вся суть решения генерации очень проста. Нужно открыть папку /insert/images/ и взять все картинки которые в ней находятся, далее открыть файл .csv и записать в него массив изображений.
Вот собственно и сам модуль, создайте файл training.php со следующим содержанием
<html>
<head>
<title>Подготовка файла .csv author Scriptland.com.ua</title>
<style>
* {margin:0;padding:0}
body {font-family: Arial, Helvetica, sans-serif;font-size: 12px;}
a {color:blue}
a:hover {color:red;text-decoration:none}
.content {margin:50px}
.content.green {color:green;background: #DBFFCE;padding:30px;border:1px solid #ADFFA0}
.content.red {color:red;background: #FFE5E5;padding:30px;border:1px solid #FF837C}
input.submit {padding:10px 30px;font-size:18px;}
input.text {padding:7px 25px;font-size:18px;margin-bottom:5px;}
</style>
</head>
<body>
<div class="content">
<form action="" method="get">
<input class="text" type="text" name="name" value="" placeholder="название"/><br />
<input class="text" type="text" name="tags" value="" placeholder="теги"/><br />
<input class="submit" type="submit" name="traning" value="подготовить файл .csv" />
</form>
</div>
<?php
function ImgFiles($vars) {
$dir = opendir ($vars);
while (false !== ($file = readdir($dir))) {
if(($file !=".") && ($file !="..")) {
$r[]= $file;
}
}
closedir($dir);
return $r;
}
if($_GET['traning']) {
$filename = $_SERVER['DOCUMENT_ROOT']. '/user-content/insert/insert.csv' ;
$vars = $_SERVER['DOCUMENT_ROOT']. '/user-content/insert/images/' ;
$var = "\"name\",\"img\",\"description\",\"tags\",\"artist\",\"site\"\n" ;
if(ImgFiles($vars)) {
foreach(ImgFiles($vars) as $value) {
$var .= "\"{$_GET['name']}\",\"{$value}\",\"\",\"{$_GET['tags']}\",\"\",\"\"\n" ;
}
$open = fopen($filename, 'a') or die ( '<div class="content red">Ошибка при открытии файла! Возможно файл пуст!</div>' );
fwrite($open, $var) or die( '<div class="content red">Ошибка при записи в файл! Возможно недостаточно прав!</div>' );
fclose($open);
?>
<div class="content green">
<div>Файл <font color="red"><?=$filename?></font> успешно подготовлен!</div>
<a href="/user-content/insert/insert.csv">Скачать</a> файл для просмотра.<br />
Перейти к <a href="/admin/bulkPreview/">загрузке</a> картинок.
</div>
<?php } else {?>
<div class="content red">Подготовка файла .csv не возможна, отсутствуют картинки в папке images</div>
<?php }
} ?>
</body>
</html>
Загрузите файл в корневую директорию сайта
Перейдите по адресу
http://site.ru/training.php
Введите название и теги для картинок, нажмите на кнопку подготовки и следуйте сообщениям скрипта.
ПС. Один и тот же файл можно генерировать только один раз, если вы его обновите дважды или больше, то в файл добавятся такие же строки которые вы сгенерировали совсем недавно.
После того как вы сгенерировали файл и добавили картинки в базу данных, файл insert.csv удаляется вместе с картинками в папке images. Так что последующие ваши действия при загрузке картинок будут всего лишь загрузка новых картинок в папку images, файл insert.csv создается автоматически.
0 комментариев