-
-
Save xlab/6320506 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$link = mysql_connect('localhost','root',''); | |
mysql_select_db('bd_rbt'); | |
mysql_set_charset('utf8'); | |
class Uploader | |
{ | |
public $upload_dir = "Z:\\home\\myrbt.ru\\www\\files\\"; | |
private $allow_exp = Array("image/jpeg", "image/png"); | |
private $max_size = 5242880; // 5 Мб | |
public function Upload($file) | |
{ | |
global $link; | |
// Проверяем тип файла | |
if (array_search($file['type'], $this->allow_exp) === false) | |
return 'Неподходящий тип файла.'; | |
// Проверяем размер | |
if ($file['size'] > $this->max_size) | |
return 'Файл слишком большой.'; | |
// Генерируем id и проверяем по базе | |
$id = 0; | |
while(true) { | |
$id = md5(uniqid()); | |
$query = mysql_query("SELECT `id` FROM `files` WHERE (`id`='".$id."')"); | |
if (!mysql_fetch_array($query)) // Если найден, то генерируем заново | |
break; | |
} | |
// Новое имя файла | |
$file['name'] = $id . substr($file['name'], (int)strrpos($file['name'], '.') - strlen($file['name'])); | |
$uploadfile = $this->upload_dir . $file['name']; | |
//Перемещаем файл из временного хранилища | |
if (move_uploaded_file($file['tmp_name'], $uploadfile)) { | |
mysql_query("INSERT INTO `files`(`id`,`name`,`size`) VALUES ('".$id."','".$file['name']."','".$file['size']."')"); | |
return "Файл загружен! ID: " . $id; | |
} else { | |
return "Что-то пошло не так. Попробуйте еще раз."; | |
} | |
} | |
public function Info($id) | |
{ | |
global $link; | |
//return mysql_query("SELECT * FROM `files` WHERE `id`='".$id."'"); | |
$query = mysql_query("SELECT * FROM `files` WHERE `id`='".$id."'"); | |
$row = mysql_fetch_assoc($query); | |
if ($row) | |
$row['name'] = $this->upload_dir . $row['name']; | |
else | |
return "Файл не найден."; | |
return $row; | |
} | |
} | |
if (isset($_POST['upload'])) | |
{ | |
$uploader = new Uploader(); | |
echo $uploader->Upload($_FILES['file']); | |
} | |
elseif (isset($_POST['id'])) | |
{ | |
$uploader = new Uploader(); | |
$row = $uploader->Info($_POST['text']); | |
if (is_array($row)) | |
{ | |
foreach ($row as $key => $value) | |
echo($key . ": " . $value. "<br>"); | |
} | |
else | |
{ | |
echo $row; | |
} | |
} | |
?> | |
<!DOCTYPE html> | |
<html lang="ru"> | |
<body> | |
<form method='post' enctype='multipart/form-data'> | |
<input name='file' type='file' multiple='false' /> | |
<input type='submit' name='upload' value='Загрузить' /> | |
</form> | |
<form method='post' enctype='multipart/form-data'> | |
<input name='text' type='text' /> | |
<input type='submit' name='id' value='Найти' /> | |
</form> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment