<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="uploadfile">
<input type="submit" name="up_img" value="Загрузить">
</form>
<font color="red">
<?php
if (isset($errors)){
echo implode('<br>', $errors) .'<br>';
}
?>
</font>
<?php
if(isset($_POST['up_img'])){
$img = new img_up();
$img->upload_dir='../images/';
if($img->move($_FILES['uploadfile']['tmp_name'],$_FILES['uploadfile']['name']) == 0){
$errors=array();
$errors[]='Файл не загружен!';
}
else{
$errors=array();
$errors[]='Файл успешно загружен! <br> Ссылка на файл: '.$img->upload_file;
}
}
class img_up {
var $upload_dir;
var $upload_file;
private $file_name;
private $new_name;
function move($file, $new_name){
$this->file_name=$file;
$this->new_name=$new_name;
if(!copy($this->file_name, $this->upload_dir.$this->new_name)){
return 0;
}
else{
$this->upload_file=$this->new_name;
return 1;
}
}
}
?>
Незнаю правильно ли написал или нет(я в плане стандартов), но скрипт работает. Это только для примера. Это не рабочая моя версия. Вообщем в случае ошибки или удачи загрузки файла сообщение не выводится. Пока немог понять почему. У кого время есть посмотрите че я упустил. :)
Спустя 1 час, 14 минут, 22 секунды (14.05.2011 - 21:27) Игорь_Vasinsky написал(а):
может вот этоу проверку:
заменить на
$_FILES['uploadfile']['name']) == 0
заменить на
!isset($_FILES['uploadfile']['name']);
Спустя 3 минуты, 50 секунд (14.05.2011 - 21:31) neadekvat написал(а):
1. Табы в листинге на форуме - это жесть. У меня все расползлось.
2. Логика: ошибки выводятся ДО того, как заполняются. В скриптовом языке, где события происходят сверху вниз, без функций и классов это невозможно.
3. copy - табу для загрузки файлов. У вас может не быть прав для доступа во временный каталог, в котором хранится загруженный файл. Есть функция move_uploaded_file. Ее используйте.
В остальном - для чего здесь класс?
2. Логика: ошибки выводятся ДО того, как заполняются. В скриптовом языке, где события происходят сверху вниз, без функций и классов это невозможно.
3. copy - табу для загрузки файлов. У вас может не быть прав для доступа во временный каталог, в котором хранится загруженный файл. Есть функция move_uploaded_file. Ее используйте.
В остальном - для чего здесь класс?
Спустя 8 часов, 48 минут, 31 секунда (15.05.2011 - 06:19) XCross написал(а):
Пока не для чего. Это лишь пробный. Хочу прикрутить сюда изменение размера загруженной картинки а заодно и проверки.
Спустя 1 час, 11 минут, 36 секунд (15.05.2011 - 07:31) neadekvat написал(а):
Цитата (kmaks @ 15.05.2011 - 07:19) |
Пока не для чего. Это лишь пробный. |
Не, ты не понял вопроса: суть в том, чтобы попрактиковаться в ООП или чтобы попрактиковаться в корректной загрузке файлов?
Судя по тому, что я увидел, тебе стоит начать со второго. А уж потом, зная нюансы, писать первое.
Невомзожно научиться водить на машине, если тебя прям на дороге надо еще ПДД обучать.
_____________
Обмен Ukash на WebMoney