<?
/* -----------------------------------------
Chevereto - Script de hosting de imagenes
Nightly Build 1.9r1 (29/08/2010)
http://www.chevereto.com/
Released under the GPL 2.0
Copyright (C) 2008 by Rodolfo Berrios
<inbox at rodolfoberrios dot com>
----------------------------------------- */
// VERSION DEL SCRIPT
define('SC_VERSION','NB1.9r1');
// Config
require('config.php');
// Pseudo Debug
if(!$debug_mode) {
error_reporting(0);
}
// Critital error box
$o_errorbox = '<div style="background: #F00; color: #FFF; font-family: Courier, monospace; font-weight: bold; padding: 1em; text-align: center;">';
$c_errorbox = '</div>';
// Fx para comprobar variables
function check_var($var) {
if(!isset($var) && empty($var)) {
return false;
} else {
return true;
}
}
// Fx para comprobar las keys
function check_key($var) {
if(check_var($var)) {
session_unset();
header('Location: '.URL_SCRIPT);
}
}
function check_permissions($dir) {
global $o_errorbox, $c_errorbox;
if(!is_writable($dir)) {
echo $o_errorbox.'Critital error 01: There is no write permission in '.$dir.$c_errorbox;
die();
}
}
// CH-Ch-Check Permissions
check_permissions(DIR_UP);
check_permissions(DIR_IM);
check_permissions(DIR_WORKING);
check_permissions(DIR_TEMP);
check_permissions(DIR_TH);
// CH-CH-Check Upload config
$ini_upload = trim(ini_get('upload_max_filesize'), 'M');
if($ini_upload<$max_mb) {
echo $o_errorbox.'Critital error 02: Max. image size ('.$max_mb.'Mb) is greater than the value in php.ini ('.$ini_upload.'Mb)'.$c_errorbox;
die();
}
// CH-CH-Check GD
if (!extension_loaded('gd') && !function_exists('gd_info')) {
echo $o_errorbox.'Critital error 03: You must load the GD extension. <a href="http://php.net/manual/en/book.image.php">http://php.net/manual/en/book.image.php</a>'.$c_errorbox;
die();
}
// CH-CH-Check $DOM_SCRIPT
if(!isset($DOM_SCRIPT) or empty($DOM_SCRIPT)) {
echo $o_errorbox.'Critital error 04: Invalid $DOM_SCRIPT, edit it manually in config.php'.$c_errorbox;
die();
}
// CH-CH-Chek cURL
if (!extension_loaded('curl')) {
echo $o_errorbox.'Critital error 05: You must load the cURL extension. <a href="http://php.net/manual/en/book.curl.php">http://php.net/manual/en/book.curl.php</a>'.$c_errorbox;
die();
}
// DOCTITLE
define('ESP_TITULO',' | ');
// VARIABLES
$lup = $_FILES['fileup'];
$remota = $_POST['remota'];
$postedkey = $_POST['postkey'];
$resizf = str_replace(' ', '', $_POST['resize']); // Resize via POST
$url = $_GET['url'];
$urlrez = $_GET['urlrez'];
$v = $_GET['v']; if ($v=='.htaccess') { unset($v); $v=''; }
$page = $_GET['p'];
$view_fld = $_GET['folder'];
$resizr = $_GET['ancho']; // Resize via GET
// SHORT URL SERVICE
switch($cut_url_service) {
case 'tinyurl':
$tiny_api = 'http://tinyurl.com/api-create.php?url=';
$tiny_service = 'TinyURL';
break;
default:
$tiny_api = 'http://tinyurl.com/api-create.php?url=';
$tiny_service = 'TinyURL';
break;
}
// LANGUAGE
include('lang/'.LANG.'.php');
if (LANG!=='es') { $lang = LANG; }
// SET Modo default
$modo = 1;
// DE DONDE VIENES?
$referer = parse_url($_SERVER['HTTP_REFERER']);
if (empty($referer['host']) && !isset($referer['host'])) {
$referido = $DOM_SCRIPT;
} else {
$referido = $referer['host'];
}
if (isset($remota)) {
$ref3 = explode('?',$ref2); // img.godlike.cl?urlrez=http:
$refok = $ref3['0'];
} else {
$refok = $ref2;
}
// Limite de actividad
if (isset($lup) || isset($remota)) {
if ($referido !== $DOM_SCRIPT && $lim_act==true) {
if (!isset($url)) {
echo $o_errorbox.ERROR_REF.$c_errorbox;
die;
}
}
}
// EL REZ
if (isset($resizr)) {
$resize = str_replace(' ', '', $resizr);
} else {
$resize = str_replace(' ', '', $resizf);
}
// MANEJEMOS LA RUP
if (isset($url)) {
$rup = str_replace(' ', '', $url);
} else {
$rup = str_replace(' ', '', $remota);
}
// DETERMINAMOS QUE MOSTRAMOS Y HACEMOS
// 1 = Mostrar formulario.
// 2 = Muetsra el visualizador
// 3 = Sube un archivo
// 4 = muestra la pag del error de redimensionamiento
// 5 = Muestra una pag. estatica
// spit = devuelve los mensajes de error.
// Modo pagina
if (isset($page)) {
unset($modo);
$modo = 5;
// haga el switch
switch ($page) {
// Los errores
case '400':
$h1 = TITLE_400;
$explained = DESC_400;
break;
case '401':
$h1 = TITLE_401;
$explained = DESC_401;
break;
case '403':
$h1 = TITLE_403;
$explained = DESC_403;
break;
case '404':
$h1 = TITLE_404;
$explained = DESC_404;
break;
case '500':
$h1 = TITLE_500;
$explained = DESC_500;
case '503':
$h1 = TITLE_503;
$explained = DESC_503;
break;
default:
$h1 = TITLE_404;
$explained = DESC_404;
$page = 'generico';
break;
}
$titulo = $h1.ESP_TITULO;
}
// FX validate URL
function isValidURL($url) {
return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}
// FX Filtro (REMOTO)
function checkremota($rup) {
if(isValidURL($rup)) {
$info = getimagesize($rup);
if(!empty($info)) {
return true;
} else {
return false;
}
} else {
return false;
}
}
// Si hay posteo / urleo
if (isset($lup) || isset($remota) || isset($url)) {
if ($lup[size] ==! null || !empty($remota) || !empty($url)) {
unset($modo);
$modo = 3;
} else {
unset($modo);
$modo = 1;
$spit = true;
$errormsg = FORM_INCOMPLETE;
$titulo = TITLE_FORM_INCOMPLETE.ESP_TITULO;
}
}
// SI HAY DOBLE POSTEO...
if (!empty($rup) && !empty($lup['type'])) {
unset($modo);
$modo = 1;
$spit = true;
$errormsg = DOBLE_POSTED;
$titulo = FATAL_ERROR_TITLE.ESP_TITULO;
}
// Si hay urlrez, seteamos el modo rr
if (isset($urlrez)) {
if (!empty($urlrez)) {
// Valid URL?
if(!isValidURL($urlrez) or !checkremota($urlrez)) {
unset($modo);
$modo = 1;
$spit = true;
$errormsg = CRITIC_ERROR_INPUT;
$titulo = ERROR_UPLOADING.ESP_TITULO;
} else {
// veamos la extension...
$info_rez = getimagesize($urlrez);
if (preg_match("@image/(gif|pjpeg|jpeg|png|x-png|bmp)$@", $info_rez['mime'])) {
unset($modo);
$modo = 'rr';
$titulo = ENTER_WIDTH.ESP_TITULO;
} else {
$spit = true;
$errormsg = INVALID_EXT;
$titulo = INVALID_TITLE.ESP_TITULO;
}
}
} else {
$spit = true;
$errormsg = NOTHING_TO_RESIZE;
$titulo = INPUT_ERROR.ESP_TITULO;
}
}
// Si hay V, seteamos el modo 2
if (isset($v)) {
if (!empty($v)) {
unset($modo);
$modo = 2;
$name = $v;
} else {
$spit = true;
$errormsg = NO_ID;
$titulo = NO_ID_TITLE.ESP_TITULO;
}
}
$string = $rup.$urlrez;
if (preg_match("@".$DOM_SCRIPT."/(site-img|js)/@", $string)) {
unset($modo);
$modo = 1;
$spit = true;
$errormsg = NO_SELF_UPLOAD;
$titulo = CANT_UPLOAD_TITLE.ESP_TITULO;
}
if($modo==1) {
// Vemos si ya existe un postkey
session_start();
check_key($_SESSION['postedkey']);
session_write_close();
// Generamos la postkey para el formulario
$postkey = md5(uniqid(rand(), true));
}
/* HAGAMOS EL UPLOADING ---MODO 3--- */
if ($modo==3) {
session_start();
check_key($_SESSION['postedkey']);
$_SESSION['postedkey'] = $postedkey;
session_write_close();
// Primer filtro (LOCAL)
function checklocal($lup) {
if (preg_match("@image/(gif|pjpeg|jpeg|png|x-png|bmp)$@", $lup['type'])) { return true; }
if ($lup['size']<$max_by) { return true; }
return false;
}
if (checklocal($lup) || checkremota($rup)) {
// LA SUBIDA LOCAL
if ($lup['size'] ==! null) {
copy($lup['tmp_name'], DIR_WORKING.$lup['name']);
$tmp_name = $lup[name]; // Temp name
}
// LA SUBIDA REMOTA
if (!empty($rup)) {
// Veamos si viene del resize
$grabname = substr("$rup", -21); // up/temp/000000000.jpg
if (file_exists($grabname)) {
$tmp_name = substr("$rup", -13);
rename($grabname, DIR_WORKING.$tmp_name);
} else {
// GET A NAME
$partes = explode('/', $rup);
$rname = $partes[count($partes) - 1];
// Conectando
$ch = curl_init();
curl
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于PHP开发的图床搭建php版无需数据库.rar (68个子文件)
图床搭建php版无需数据库
site-img
preferencias_fr.gif 2KB
tabs_fa.png 3KB
btn_reintentar_nl.gif 1KB
preferencias_fa.gif 1KB
tabs_en.png 5KB
tab_bkg.png 254B
preferencias_nl.gif 2KB
tabs.png 5KB
btn_red_nl.gif 1KB
btn_reintentar_cn.gif 1KB
btn_red.gif 15KB
btn_save.png 201B
bkg_btn_redimensionar_wide.png 929B
btn_subir_en.gif 1KB
btn_red_fr.gif 14KB
foot_bkg.png 47KB
btn_red_en.gif 14KB
logo.png 23KB
preferencias_cn.gif 2KB
btn_red_fa.gif 13KB
btn_reintentar_fr.gif 1KB
show_tv.gif 561B
preferencias.gif 2KB
show_img.gif 1019B
tool_compartir.gif 142B
error.gif 5KB
body_bkg_default.png 302B
show_url.gif 1019B
tabs_cn.png 6KB
tabs_nl.png 5KB
btn_subir_cn.gif 1KB
preferencias_en.gif 2KB
tool_completa.gif 13KB
tabs_fr.png 4KB
load.gif 11KB
btn_subir_nl.gif 1KB
show_td.gif 561B
canvas.gif 0B
btn_reintentar.gif 1KB
btn_subir_fa.gif 1KB
social.gif 2KB
btn_red_cn.gif 2KB
btn_reintentar_en.gif 1KB
twitter.gif 580B
btn_subir_fr.gif 1KB
show_social.gif 73B
btn_subir.gif 1KB
engine.php 22KB
lang
en.php 5KB
es.php 5KB
nl.php 5KB
fa.php 5KB
fr.php 5KB
cn.php 4KB
.htaccess 286B
config.php 3KB
js
pref.php 522B
jquery_support.js 5KB
jquery.scrollTo-min.js 2KB
pngfix.js 1KB
favicon.ico 4KB
index.php 15KB
thumbs
.htaccess 56B
images
.htaccess 143B
estilo.css 15KB
up
working
.htaccess 126B
.htaccess 121B
temp
.htaccess 126B
共 68 条
- 1
资源评论
心梓知识
- 粉丝: 6381
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功