
07.07.2008, 19:12
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
пожайлусто исправте ошибку
1) Скрипт работает только при register_globals = on
2) Вот тебе класс аплоада
Применение
Код нужно немного переделать для аплоада только 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
Пользуйся классами - экономь время
Последний раз редактировалось Naydav; 07.07.2008 в 19:17..
|
|
|

07.07.2008, 19:19
|
|
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме: 19975136
Репутация:
4536
|
|
GreenBear, работает, но немного не так, заменяет "right" на
PHP код:
preg_replace('/[^="\']("|\'|=|)(right)("|\'|=|)[^"\.\']/i', '\\1<strong>\\2</strong>\\3', $text);
|
|
|

07.07.2008, 21:39
|
|
Постоянный
Регистрация: 15.06.2007
Сообщений: 527
Провел на форуме: 1734541
Репутация:
214
|
|
Есть у когонить пример такого скрипта (хотябы подобие):
Скрипт выводит список файлов в директории и рядом с ними ссылка или что то в этом роде при нажатии на которую файл уходит по почте.
|
|
|

07.07.2008, 22:18
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
Сообщение от svesve
Есть у когонить пример такого скрипта (хотябы подобие):
Скрипт выводит список файлов в директории и рядом с ними ссылка или что то в этом роде при нажатии на которую файл уходит по почте.
ну вот если по простому:
PHP код:
<?php
$directory= "нужная директория";
$dir = opendir($directory);
if(!isset($_GET['file']))
{
while($d=readdir($dir))
{
if(is_file($d)) echo $d.' <a href="red.php?file='.$d.'">Отправить</a><br>';
}
}
else
{
mail("куда отправляем","тема",file_get_contents($directory."/".$_GET['file']));
}
?>
|
|
|

07.07.2008, 22:26
|
|
Участник форума
Регистрация: 12.11.2006
Сообщений: 213
Провел на форуме: 347573
Репутация:
185
|
|
Сообщение от scrat
ну вот если по простому:
PHP код:
<?php
$directory= "нужная директория";
$dir = opendir($directory);
if(!isset($_GET['file']))
{
while($d=readdir($dir))
{
if(is_file($d)) echo $d.' <a href="red.php?file='.$d.'">Отправить</a><br>';
}
}
else
{
mail("куда отправляем","тема",file_get_contents($directory."/".$_GET['file']));
}
?>
Кхм...на сколько я помню просто функцией mail() аттач послать нельзя)) Точнее чтоб послать надо
килограмм заголовков посылать вместе с содержимым.
Вот отличный класс для работы с мылом:
_http://dosug.dosugnn.ru/class.phpmailer.php.txt
|
|
|

07.07.2008, 22:56
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Как мне по IP адресу получить хост???
Как реализованно на всех движках (e107 IPB phpBB) вот например:
77.87.207.129 [ nat.ucanet.ru ]
какой командой можно получить nat.ucanet.ru если у меня IP 77.87.207.129 ???
|
|
|

07.07.2008, 23:16
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
Сообщение от Nightmarе
Как мне по IP адресу получить хост???
Как реализованно на всех движках (e107 IPB phpBB) вот например:
77.87.207.129 [ nat.ucanet.ru ]
какой командой можно получить nat.ucanet.ru если у меня IP 77.87.207.129 ???
gethostbyaddr()
|
|
|

07.07.2008, 22:57
|
|
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме: 19975136
Репутация:
4536
|
|
echo gethostbyaddr($_SERVER['REMOTE_ADDR']);
|
|
|

07.07.2008, 23:15
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Сообщение от GreenBear
echo gethostbyaddr($_SERVER['REMOTE_ADDR']);
Да вот нифига... по разному пробовал, определяет просто IP, а в движках именно хост, а это хост не определяет 
|
|
|

08.07.2008, 02:54
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
если на сайте(например майл.ру) есть добовление коментариев на аяксе ...
как мне как на пхп имитировать такой запрос?
я проверил куда отсылаются данные и какие данные ... на пхп отослал нужные пост значения на нужный скрипт но мессага не добавилась... как быть?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|