файлы и папки

создание ZIP архива на лету и отдача на скачивание bitrix

08.04.2015 Bitrix, php скрипты , , ,

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
// require($_SERVER["DOCUMENT_ROOT"]."/download/createzip.php");
$arrFile = array(
					"/upload/item.jpg", 
					"/upload/item2.jpg", 
					"/upload/slide.jpg",
					"/upload/products/doc/CWSO.pdf",
					"/upload/products/doc/CWSS-C-W.pdf",
					"/upload/products/doc/CWSS-O.pdf",
					"/upload/products/doc/CWST.pdf",
					"/upload/products/doc/DBS1224B4W_manual.pdf",
					"/upload/products/doc/EMA_DBS_Certificate.pdf",
					"/upload/products/doc/EnScape_Certificate.pdf",
					"/upload/products/doc/ExitPoint_Certificate.pdf",
					"/upload/products/doc/ExitPoint_manual.pdf",
					);

createZipAndDownload($arrFile);

function createZipAndDownload($arFiles)
{
	$zip = new ZipArchive();
	$filename = "system_sensor_archive_".date("d.m.Y").".zip";
	var_dump($filename);
	if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
	    exit("Невозможно открыть <$filename>\n");
	}

	foreach ($arFiles as $file) 
	{		
	 	$arr = explode("/", $file);	 	
	 	var_dump($arr);
		$zip->addFile($_SERVER["DOCUMENT_ROOT"].$file, end($arr));
	}
	
	$zip->close();

	file_force_download($filename);
}

function file_force_download($file) {
  if (file_exists($file)) {
    // сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт
    // если этого не сделать файл будет читаться в память полностью!
    if (ob_get_level()) {
      ob_end_clean();
    }
    // заставляем браузер показать окно сохранения файла
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    // читаем файл и отправляем его пользователю
    readfile($file);

    unlink($file);
    exit;
  }
}

Оригинал тут http://pastebin.com/h8zubtLz

Скачивание файл

15.04.2013 php, php скрипты

// выводим в браузер
if (file_exists($fName)) {
  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename="'.basename($fName).'"');
  header('Content-Transfer-Encoding: binary');
  header('Expires: 0');
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  header('Pragma: public');
  header('Content-Length: ' . filesize($fName));
  ob_clean();
  flush();
  readfile($fName);
  exit;
}

Удаление папки с файлами в PHP

06.04.2013 php, php скрипты

<?
$folder = 'upload1';
$dir = $_SERVER['DOCUMENT_ROOT']."/".$folder;
function rmDir($dir) {
	if ($elemDir = glob($dir."/*")) {		
	   foreach($elemDir as $elem) {
		 is_dir($elem) ? rmDir($elem) : unlink($elem);
	   }
	}
	rmDir($dir);
}

rmDir($dir);
?>

Создание символических ссылок PHP symlink()

01.04.2013 Bitrix, php, php скрипты No comments , ,

<?
$path = '/home/sait/www';
$folder = 'include';
if(symlink($path."/".$folder,$_SERVER['DOCUMENT_ROOT']."/".$folder)){
	echo "<font color=green>Символические ссылка удачно созданы</font>";
}else{
	$strError = 'Не удалось создать ссылку на папку '.$folder.', обратитесь к администратору сервера';
}
?>