/
SoRusV
/
Tasmota
Обзор
Документация
Войти
/
SoRusV
/
Tasmota
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
development
api/upload-tasmota.php
54 строки
2 KB
Theo Arends
Change Tasmota OTA scripts
21 дек 2022, 19:22
21 дек 2022, 19:22
8ffff8b
Код
Авторство
О чём код?
<?php // mkdir and chmod arduino folder to 777 // //var_dump($_FILES); /** * GZIPs a file on disk (appending .gz to the name) * * From http://stackoverflow.com/questions/6073397/how-do-you-create-a-gz-file-using-php * Based on function by Kioob at: * http://www.php.net/manual/en/function.gzwrite.php#34955 * * @param string $source Path to file that should be compressed * @param integer $level GZIP compression level (default: 9) * @return string New filename (with .gz appended) if success, or false if operation fails */ function gzCompressFile($source, $level = 9){ $dest = $source . '.gz'; $mode = 'wb' . $level; $error = false; if ($fp_out = gzopen($dest, $mode)) { if ($fp_in = fopen($source,'rb')) { while (!feof($fp_in)) gzwrite($fp_out, fread($fp_in, 1024 * 512)); fclose($fp_in); } else { $error = true; } gzclose($fp_out); } else { $error = true; } if ($error) return false; else return $dest; } $image = basename($_FILES["file"]["name"]); //$image = $_FILES["file"]["name"]; // Solves an issue where basename returns Array $target_file = "tasmota/".$image; $hostname = $_SERVER['SERVER_NAME']; if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { if (strpos($target_file, "tasmota32") | strpos($target_file, ".gz")) { echo "The file $image has been uploaded to OTA server $hostname. \n"; } else { gzCompressFile($target_file); echo "The files $image and $image.gz have been uploaded to OTA server $hostname. \n"; } } else { echo "Sorry, there was an error uploading your file $image to OTA server $hostname. \n"; } ?>