Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

21.07.2008, 09:17
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
Скрипт загрузки фоток
Нужен простой, гибкий и удобный скрипт для загрузки фоток на сервер. В моей коллекции его нет, поделитесь если у кого есть. Очень благодарен.
|
|
|

21.07.2008, 10:24
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме: 2976185
Репутация:
694
|
|
гы.  это ты для своей социалки делаешь? есть такая функция в php называеться copy() поищи по ней.
|
|
|

21.07.2008, 13:20
|
|
Постоянный
Регистрация: 02.07.2008
Сообщений: 472
Провел на форуме: 3728999
Репутация:
444
|
|
В архиве находятся 10 популярных скриптов для создания хостинга картинок. Теперь выбрав наиболее понравившийся скрипт, Вы сможете создать собственный сервис по хранению изображений, наподобие foto.radikal, imageshack или других подобных сайтов.
Список скриптов в архиве (1.42 Mb):
CoSiS Free Image Host Script
EasyImageHoster 1.35
GMPH v1.0.3
Image Upload
Image Host Script 0.7
DXL dev\' Image Hosting Script
ImgUpload 2.0.1
UPLOADIMAGE v1.02
imageshack.us Clone
eXtreme Photo Hosting 2006
Скачать тут => http://depositfiles.com/files/2987111
|
|
|

21.07.2008, 13:29
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
PHP код:
function avup($folder,$fname,$nname,$x,$y)
{
$data = $_FILES[$fname];
$tmp = $data['tmp_name'];
$file = $data['name'];
if (preg_match('#[^\?\"/:\*<>\|]+?\.\w+?#', $file))
{
if (@file_exists($tmp))
{
if (($a = strrpos($file, '.')) !== false)
{
$f = strtolower(substr($file, $a));
$name = $folder.'/'.$nname;
switch($f)
{
case '.gif':
$img = @imagecreatefromgif($_FILES[$fname]['tmp_name']);
$name .= $f;
break;
case '.png':
$img = @imagecreatefrompng($_FILES[$fname]['tmp_name']);
$name .= $f;
break;
case '.jpg': case '.jpeg':
$img = @imagecreatefromjpeg($_FILES[$fname]['tmp_name']);
$name .= $f;
break;
}
}
if($img)
{
if(imagesx($img) <= $x && imagesy($img) <= $y)
if(@move_uploaded_file($tmp, $name))
return $nname.$f;
}
}
}
return false;
}
использование
PHP код:
<?php
if (isset($_POST['up']))
{
$chrs = chr(mt_rand(97, 122)) . time();
if (($xy = avup('Foto', 'file', $chrs, 200, 300)))
{
//Код...
}
}
?>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="up"></form>
|
|
|

21.07.2008, 14:44
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
Функция, которую использую для заливки картинок на сервант.
Сохраняет картинки в формате jpg с качеством 80 единиц.
PHP код:
function LoadImage($fileinfo, $filepath, $width = null, $height = null)
{
$allowed = array ('gif','png','jpg');
$filename = trim($fileinfo['name'], "\x00..\x1F");
$tmpname = explode('.',$filename);
$extension = $tmpname[count($tmpname)-1];
$allowed = in_array($extension,$allowed);
if ($allowed)
{
list($rwidth, $rheight) = getimagesize($fileinfo['tmp_name']);
if ($width == null) $width = $rwidth;
if ($height == null) $height = $rheight;
$image = imagecreatetruecolor($width, $height);
$nimage = null;
switch ($extension)
{
case 'gif':
$nimage = imagecreatefromgif($fileinfo['tmp_name']);
break;
case 'jpg':
$nimage = imagecreatefromjpeg($fileinfo['tmp_name']);
break;
case 'png':
$nimage = imagecreatefrompng($fileinfo['tmp_name']);
break;
default:
return false;
break;
}
if (!imagejpeg($image, $filepath, 80))
{
return false;
}
return true;
}
else
{
return false;
}
}
$fileinfo - нужный элемент из массива $_FILES
$filepath - путь и название файла, в который будем писать картинку
$width, $height - размеры картинки, до которых нужно сжать/растянуть картинку. Если null - размер не меняем.
пример использования:
PHP код:
if (LoadImage($_FILES['photo'], './photos/myphoto.jpg')
{
echo 'All ok!';
}
else
{
echo 'Error!';
}
|
|
|

23.07.2008, 14:16
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
удалите нафих эту рекламу -^
Для загрузки лучше использовать класс
Classes: Graphics -389
http://phpclasses.segmenta.ru/browse/class/11.html
Там найдешь массу интересной инфы по работе с картинками, и не только по аплоаду
Или вот такой вот например
Применение
Код нужно немного переделать для аплоада только 1 файла
PHP код:
foreach($_FILES as $key=>$data)
{
$new = explode('.',$data['name']);
$fupload=& FileUploader::getInstance();
$fupload->_FILESKeyName=$key;
$fupload->newName= $NewFileName
$fupload->DestinationPath= $DestinationPath;
$fupload->AddAllowedMIME('image/jpeg','image/pjpeg','image/gif','image/png');
$file = $fupload->StartUpload();
unset($_FILES[$key]['name']);
}
Сам класс:
PHP код:
class FileUploader {
var $_FILESKeyName;
var $newName= false;
var $DestinationPath= './';
var $AllowedMIME= array();
var $isUploaded= false;
var $ErrorMessage= '';
var $UploadErrors = Array(
0=>'There is no error, the file uploaded with success.',
1=>'The uploaded file exceeds the upload_max_filesize directive in php.ini.',
2=>'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.',
3=>'The uploaded file was only partially uploaded.',
4=>'No file was uploaded.',
6=>'Missing a temporary folder.',
7=>'Failed to write file to disk.',
8=>'File upload stopped by extension.'
);
function FileUploader() {
}
function StartUpload() {
$_file= $_FILES[$this->_FILESKeyName];
if ($_file['error']!=0) {
$this->ErrorMessage= $this->UploadErrors[$_file['error']];
return;
}
else {
if ( count($this->AllowedMIME)>0 && !in_array($_file['type'], $this->AllowedMIME)) {
$this->ErrorMessage= 'Wrong MIME type of uploaded file.';
return;
}
// start uploading file
$this->getNewName($_file['name']);
move_uploaded_file($_file['tmp_name'], $this->DestinationPath.$this->newName);
return $this->newName;
}
}
function getNewName($oldname) {
$oldname= explode('.', $oldname);
$extention= strtolower($oldname[count($oldname)-1]);
array_splice($oldname, count($oldname)-1, 1);
$oldname= implode('.', $oldname);
$this->newName= strtolower($this->newName!==false ? $this->newName : $oldname);
$new_name= preg_replace("/[^a-z0-9]+/i", '_', $this->newName);
$this->newName= $new_name . '.' . $extention;
$i= 1;
while(file_exists($this->DestinationPath.$this->newName)) {
$this->newName= $new_name . '_' . $i . '.' . $extention;
$i++;
}
}
function AddAllowedMIME() {
$amount= func_num_args();
if ($amount>0) {
$arguments= func_get_args();
for($i=0; $i<$amount; $i++)
array_push($this->AllowedMIME, $arguments[$i]);
}
}
function ClearAllowedMIME() {
array_splice($this->AllowedMIME, 0);
}
function &getInstance() {
static $instance;
if (!$instance) $instance= new FileUploader();
return $instance;
}
}
Класс под php4, т.е не использует преимуществ php5, хотя в данном случае, это и не актуально
Пользуйся классами - экономь время
пс А в честь чего, многим новым темам, начали рейтинг - 5 ставить ?
Последний раз редактировалось Naydav; 23.07.2008 в 14:24..
|
|
|

28.07.2008, 00:46
|
|
Новичок
Регистрация: 31.07.2007
Сообщений: 15
Провел на форуме: 53006
Репутация:
0
|
|
А есть у когонибудь среализацией imagemagic тоесть там превьюшки через него, водные изображения...?
|
|
|

28.07.2008, 15:32
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Сообщение от skivig
А есть у когонибудь среализацией imagemagic тоесть там превьюшки через него, водные изображения...?
Я ж уже отвечал:
_http://phpclasses.segmenta.ru/browse/class/11.html
Graphics - 387
Там ты найдешь все - и превьюхи, и вотремарк, и кропы, и зумы, и установка нового размера, фиксированого, не фиксированого, и много чего другого 
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|