Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
rpcmp
7 лет назад

Исходный код хостинга изображений для Голоса

Привет!

Если хочешь сделать у себя собственный хостинг (как наш bitimg.ru), просто залей этот небольшой код на свой сервер или на хостинг, заменив ссылки в соответствующих местах на свои. Код распространяется по лицензии Creative Commons (без дополнений), то есть его можно свободно изменять и использовать без указания авторства. Код сокращён, и ценители искусства его по этой причине не оценят, но, тем не менее, он вполне юзабельный.

Update: к сожалению, Голос не дал разместить основной код, обработав HTML, так что взять его можно тут.

Можешь ещё сделать API:

$uploadfile = "images/".$_FILES['somename']['name'];
$max_image_width = 8140;
$max_image_height = 8140;
$max_image_size = 60 * 1024 * 1024;
$valid_types =  array("gif","jpg", "png", "jpeg");

if (isset($_FILES["file"])) {
if (is_uploaded_file($_FILES['file']['tmp_name'])) {
$filename = $_FILES['file']['tmp_name'];
$ext = substr($_FILES['file']['name'], 
1 + strrpos($_FILES['file']['name'], "."));
if (filesize($filename) > $max_image_size) {
echo '{"response":{"status":"error","code":"1","desc":"File size > 60Mb"}}';
} elseif (!in_array($ext, $valid_types)) {
echo '{"response":{"status":"error","code":"2","desc":"File type is not correct"}}';
} else {
$size = GetImageSize($filename);
if (($size) && ($size[0] < $max_image_width) 
&& ($size[1] < $max_image_height)) {
$newname = md5($filename.time()).'.'.$ext;
if (@move_uploaded_file($filename, $_SERVER['DOCUMENT_ROOT'] . "/images/".$newname)) {
//move_uploaded_file($_FILES["file"]["tmp_name"], "images/" . "myFile.txt" )
$link = 'https://ĸ.net/images/'.$newname;
$title = $_FILES['file']['name'];
$width = $size[0];
$height = $size[1];
echo '{"response":{"status":"ok","link":"'.$link.'","title":"'.$title.'","width":"'.$width.'","height":"'.$height.'"}}';
} else {
echo '{"response":{"status":"error","code":"500","desc":"Server error"}}';
}
} else {
echo '{"response":{"status":"error","code":"3","desc":"Uncorrect image"}}';
}
}
} else {
echo '{"response":{"status":"error","code":"4","desc":"Empty file"}}';
}
}
?>

Кстати, список всех загруженных файлов есть на g.rpcmp.ru. Директорию, в которую будут загружаться изображения, лучше создать с правами 777 ([d]rwx-rwx-rwx). Ни в коем случае не разрешайте загрузку файлов с исполняемыми расширениями и расширениями, которые обрабатывает препроцессор. Кроме того, не используйте обработчики изображений вроде ImageMagick без предварительной проверки содержимого.

0
444.931 GOLOS
На Golos с February 2017
Комментарии (2)
Сортировать по:
Сначала старые