Различные скрипты, модули, которые не подходят в тематические разделы.
- Создан 22 сентября 2011
- Топиков 11
- Подписчиков 4
alice2k
Модераторы (0)
Модераторов здесь не замечено
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = '/public/galery/';
$upload = new Upload(str_replace('//', '/', $targetPath));
if ($upload->uploads($_FILES['Filedata'])) {
$fileInfo = $upload->getFilesInfo();
$fileInfo["nameTranslit"];// новое имя файла, можно записать в БД
}
}
class Upload {
private $dir = "/";
private $name;
private $FILES;
private $allowedType = array("jpg", "gif", "bmp", "jpeg", "png", "pps","doc","docx","xls","pdf","txt","rar","zip");
private $errors;
private $errorsMessage = array(1 => "Размер загружаемого файла превышает допустимый размер.",
2 => "Размер загружаемого файла превышает допустимый размер.",
3 => "Файл был загружен лишь частично.",
4 => "Файл не был загружен.",
6 => "Файл не был загружен.",
7 => "Файл не был загружен.",
8 => "Файл не был загружен.");
function __construct($dir="/") {
$this->dir = $dir;
}
/**
* устанавливаем дирректорию загрузки файла
*/
function setDir() {
$this->dir = $dir;
}
/**
* Устанавлиаем доступные расширения
* @param <type> $type
*/
function setAllowedType($type) {
if (is_array($type)) {
$this->allowedType = $type;
} else {
$this->allowedType = explode(",", $type);
}
}
/**
* загрузка файла
* @param $tmpName
* @param $name
* @param $replacement
*/
private function upload($tmpName, $name) {
$name = $this->substitute(self::translit($name));
if ($this->typeChecking($name))
if (move_uploaded_file($tmpName, $this->dir . $name)) {
return $name;
} else {
return false;
}
return false;
}
function uploads($FILES) {
$this->FILES = $FILES;
if (!is_array($this->FILES['name'])) {
return $this->uploadsOneFile();
} else {
return $this->uploadsManyFiles();
}
}
/**
* загрузка одного файла
*/
function uploadsOneFile() {
if ($this->FILES['error'] != 0) {
$this->errors[] = $this->errorsMessage[$this->FILES['error']];
return false;
}
$result = $this->upload($this->FILES['tmp_name'], $this->FILES['name']);
if ($result != false) {
$this->FILES['nameTranslit'] = $result;
return true;
}
return false;
}
/**
* загрузка нескольких файлов
*/
function uploadsManyFiles() {
$coutFiles = count($this->FILES['name']);
for ($i = 0; $i < $coutFiles; $i++) {
if ($this->FILES['error'][$i] == 0) {
$result = $this->upload($this->FILES['tmp_name'][$i], $this->FILES['name'][$i]);
if ($result != false) {
$this->FILES['nameTranslit'][$i] = $result;
} else {
$this->errors[] = $this->FILES['name'];
}
} else {
$this->errors[] = $this->errorsMessage[$this->FILES['error']];
}
}
return true;
}
/**
* проверяем, разрешен ли данный файл к загрузке
*/
function typeChecking($fileName) {
preg_match("#([\w()-_]+)\.([\w]{1,4})$#i", $fileName, $arrayNameFiles);
$nameEnd = strtolower($arrayNameFiles[2]);
if (in_array($nameEnd, $this->allowedType)) {
return true;
} else {
$this->errors[] = "Файлы с расширением (<b>{$fileName}</b>) не разрешенны к загрузке.";
}
return false;
}
/**
* ищет в каталоге файлы с таким же названием дописывает номер(равный количеству файлов с таким названием) в конец
* @param $name
*/
function substitute($name) {
$files = scandir($this->dir);
unset($files[0]);
unset($files[1]);
$i = 0;
$newName = $name;
preg_match("#([\w()-_]+)\.([\w]{1,4})#i", $name, $arrayNameFiles);
$nameStart = $arrayNameFiles[1];
$nameEnd = $arrayNameFiles[2];
while (in_array($newName, $files)) {
$newName = "{$nameStart}({$i}).{$nameEnd}";
$i++;
}
return $newName;
}
/**
* возвращаем информацию о файле
*/
function getFilesInfo() {
return $this->FILES;
}
/**
* возвращаем ошибки
*/
public function errors() {
return $this->errors;
}
/**
* переводим текст в транслит
* @param $text
*/
public static function translit($text) {
$rus = array("а", "б", "в",
"г", "ґ", "д", "е", "ё", "ж",
"з", "и", "й", "к", "л", "м",
"н", "о", "п", "р", "с", "т",
"у", "ф", "х", "ц", "ч", "ш",
"щ", "ы", "э", "ю", "я", "ь",
"ъ", "і", "ї", "є", "А", "Б",
"В", "Г", "ґ", "Д", "Е", "Ё",
"Ж", "З", "И", "Й", "К", "Л",
"М", "Н", "О", "П", "Р", "С",
"Т", "У", "Ф", "Х", "Ц", "Ч",
"Ш", "Щ", "Ы", "Э", "Ю", "Я",
"Ь", "Ъ", "І", "Ї", "Є", " ");
$lat = array("a", "b", "v",
"g", "g", "d", "e", "e", "zh", "z", "i",
"j", "k", "l", "m", "n", "o", "p", "r",
"s", "t", "u", "f", "h", "c", "ch", "sh",
"sh'", "y", "e", "yu", "ya", "_", "_", "i",
"i", "e", "A", "B", "V", "G", "G", "D",
"E", "E", "ZH", "Z", "I", "J", "K", "L",
"M", "N", "O", "P", "R", "S", "T", "U",
"F", "H", "C", "CH", "SH", "SH'", "Y", "E",
"YU", "YA", "_", "_", "I", "I", "E", "_");
$text = str_replace($rus, $lat, $text);
return(preg_replace("#[^a-z0-9._-]#i", "", $text));
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>SWFUpload</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h1>SWFUpload</h1>
<div id="uploadButton"></div>
<div id="status"></div>
<div id="images"></div>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/swfupload.js"></script>
<script type="text/javascript" src="js/plugins/swfupload.queue.js"></script>
<script type="text/javascript" src="js/main.js"></script>
</body>
</html>
var swfu = new SWFUpload(
{
upload_url : "upload.php",
flash_url : "swfupload.swf",
button_placeholder_id : "uploadButton",
file_size_limit : "2 MB",
file_types : "*.jpg; *.png; *.jpeg; *.gif",
file_types_description : "Images",
file_upload_limit : "0",
debug: false,
button_image_url: "button.png",
button_width : 100,
button_height : 30,
button_text_left_padding: 15,
button_text_top_padding: 2,
button_text : "<span class=\"uploadBtn\">Обзор…</span>",
button_text_style : ".uploadBtn { font-size: 18px; font-family: Arial; background-color: #FF0000; }",
file_dialog_complete_handler : fileDialogComplete,
upload_success_handler : uploadSuccess,
upload_complete_handler : uploadComplete,
upload_start_handler : uploadStart,
upload_progress_handler : uploadProgress
}
);
function uploadSuccess(file, serverData) {
$('#images').append($(serverData));
}
function uploadComplete(file) {
$('#status').append($('<p>Загрузка ' + file.name + ' завершена</p>'));
}
function uploadStart(file) {
$('#status').append($('<p>Начата загрузка файла ' + file.name + '</p>'));
return true;
}
function uploadProgress(file, bytesLoaded, bytesTotal) {
$('#status').append($('<p>Загружено ' + Math.round(bytesLoaded/bytesTotal*100) + '% файла ' + file.name + '</p>'));
}
function fileDialogComplete(numFilesSelected, numFilesQueued) {
$('#status').html($('<p>Выбрано ' + numFilesSelected + ' файл(ов), начинаем загрузку</p>'));
this.startUpload();
}
<?php
$uploadDir = 'uploads/'; //папка для хранения файлов
$allowedExt = array('jpg', 'jpeg', 'png', 'gif');
$maxFileSize = 2 * 1024 * 1024; //1 MB
//если получен файл
if (isset($_FILES)) {
//проверяем размер и тип файла
$ext = end(explode('.', strtolower($_FILES['Filedata']['name'])));
if (!in_array($ext, $allowedExt)) {
return;
}
if ($maxFileSize < $_FILES['Filedata']['size']) {
return;
}
if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
$fileName = $uploadDir.$_FILES['Filedata']['name'];
//если файл с таким именем уже существует…
if (file_exists($fileName)) {
//…добавляем текущее время к имени файла
$nameParts = explode('.', $_FILES['Filedata']['name']);
$nameParts[count($nameParts)-2] .= time();
$fileName = $uploadDir.implode('.', $nameParts);
}
move_uploaded_file($_FILES['Filedata']['tmp_name'], $fileName);
echo '<img src="'.$fileName.'" alt="'.$fileName.'" />';
}
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AJAX загрузка файлов на сервер.</title>
<script src="jquery.js"></script>
<script src="jquery.ocupload-1.1.2.packed.js"></script>
<script language="javascript">
$(document).ready(function() {
$('#upload').upload({
name: 'userfile',
method: 'post',
enctype: 'multipart/form-data',
action: 'upload/do_upload',
onSubmit: function() {
$('#result').text('Uploading...');
},
onComplete: function(data) {
$('#result').text(data);
}
});
});
</script>
</head>
<body>
<a id="upload" style="font-family: Verdana; color: #000" href="#">Выберите файл</a>
<span id="result"></span>
</body>
</html>
function index() {
$this->load->view('upload');
}
<?php
class Upload extends Controller {
function __construct() {
parent::Controller();
$this->load->helper(array('form', 'url'));
}
function index() {}
function do_upload() {
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1280';
$config['max_height'] = '1024';
$config['remove_spaces'] = TRUE;
$this->load->library('upload', $config);
if (!$this->upload->do_upload()) {
echo $this->upload->display_errors();
}else {
$data = $this->upload->data();
echo "File name: $data[file_name]. File size: $data[file_size]";
}
}
}
?>
$(document).ready(function() {
$('#upload').upload({
name: 'userfile',
method: 'post',
enctype: 'multipart/form-data',
action: 'upload/do_upload',
onSubmit: function() {
$('#result').text('Uploading...');
},
onComplete: function(data) {
$('#result').text(data);
}
});
});
$this->upload->do_upload('some_field')
<html>
<head>
<title>Загрузка файлов на сервер</title>
</head>
<body>
<h2><p><b> Форма для загрузки файлов </b></p></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename">
<input type="submit" value="Загрузить">
</form>
</body>
</html>
<html>
<head>
<title>Результат загрузки файла</title>
</head>
<body>
<?php
if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/temp/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен
");
echo("Характеристики файла:
");
echo("Имя файла: ");
echo($_FILES["filename"]["name"]);
echo("
Размер файла: ");
echo($_FILES["filename"]["size"]);
echo("
Каталог для загрузки: ");
echo($_FILES["filename"]["tmp_name"]);
echo("
Тип файла: ");
echo($_FILES["filename"]["type"]);
} else {
echo("Ошибка загрузки файла");
}
?>
</body>
</html>
if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo("Размер файла превышает три мегабайта");
exit;
}
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<link rel="stylesheet" href="css/slimbox2.css" type="text/css" media="screen" />
<script type="text/javascript" src="slimbox2.js"></script>
<script type="text/javascript" src="jquery.EmbedPicasaGallery.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#images").EmbedPicasaGallery('СЮДА ПИШИТЕ ВАШ ЛОГИН в ГУГЛ',{
matcher: /./,
size: '72', // thumbnail size (32, 48, 64, 72, 144, 160)
msg_loading_list : 'Loading album list from PicasaWeb',
msg_back : 'Back',
authkey : 'optional-picasa-authkey',
albumid : 'go-directly-to-this-album-ignore-matcher'
album_title_tag: '<h2/>'
thumb_id_prefix: 'pThumb_',
loading_animation: 'css/loading.gif',
thumb_finalizer: function(){var $a = jQuery(this); ... use this to do something to the anchor AFTER slimbox got there },
thumb_tuner: function($div,entry,i){ ... $div - слой с миниатюрой, с информацией о фотке ...}
link_mapper: function(el){ // see http://code.google.com/p/slimbox/wiki/jQueryAPI#The_linkMapper_function
return [
el.href,
'<a href="'+el.href+'">'+el.title+'</a>'
]
}
});
});
</script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#images").EmbedPicasaGallery('404666ru',{
loading_animation: 'css/loading.gif',
matcher: /123456/
});
})
</script>
<div id="images"></div>