Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не грузится картинка, не подходит размер
 
 автор: Лена   (12.11.2008 в 16:52)   письмо автору
 
 


<?php
function upload ($mod,$page,$img_alt){
global 
$link;

if (isset(
$_FILES['img']['name'])) {
        switch(
$mod_img){
            case 
1$uploaddir $_SERVER['DOCUMENT_ROOT'] . "/content/menu/";
            break;
            case 
11:
            
$uploaddir $_SERVER['DOCUMENT_ROOT'] . "/content/advices/";
            break;
            case 
13:
            
$uploaddir $_SERVER['DOCUMENT_ROOT'] . "/content/quest/";
            break;
            case 
4:
            
$uploaddir $_SERVER['DOCUMENT_ROOT'] . "/content/contact/";
            break;
            }
$uploadfile_img $uploaddir basename($_FILES['img']['name']);

$max_image_width400;
$max_image_height500;
$max_img_size2000000;

if (
move_uploaded_file($_FILES['img']['tmp_name'], $uploadfile_img)){
$filename $_FILES['img']['tmp_name'];
    if (
filesize($filename) >= $max_img_size
    echo 
"Размер файла больше"$max_img_size;
     elseif (!
exif_imagetype($filename)) echo "Неправильное расширение файла.";
    else{
     
$size GetImageSize($filename);
             if (isset(
$size) && ($size[0] <= $max_image_width) && ($size[1] <= $max_image_height)){
            echo 
"Файл" .  basename$_FILES['img']['name']). "успешно загружен.";
            return 
$uploadfile_img;
            
            
/*$sql="INSERT INTO `pages`(page_pid,page_name,id_mod,id_menu) 
                    VALUES('$page','$name','$mod','$menu')";
            mysql_query ($sql);
    
            $auto_page = mysql_insert_id(); 
    
            $sql1="INSERT INTO `img`(name,size,alt,id_menu,id_text, page_id) 
                    VALUES('$name_img','$size','$img_alt','$menu_img','$text_img','$auto_page')";
            mysql_query ($sql1);*/
            
}else echo "Неверные img-свойства.";
    }
}else{
$error=$_FILES['myfile']['error'];
return 
$error;
return 
"Файл" basename$_FILES['img']['name']) . "не удалось загрузить.";
}
}
}

if (isset(
$_POST['send'])){
$img_alt $_POST['img_alt'];
$page intval($_POST['page']);
$mod_img intval($_POST['modul']);
if (
$mod_img && $page && $img_alt) echo    upload($mod,$page,$img_alt);
else echo 
"ERROR!";
}
?>



Выдает две ошибки: Warning: filesize() [function.filesize]: stat failed for Z:\tmp\php2C47.tmp in Z:\home\avart.ua\www\upload1.php on line 33

Fatal error: Call to undefined function exif_imagetype() in Z:\home\avart.ua\www\upload1.php on line 35

PS Что-то я сегодня заработалась так, что запостила не в тот раздел. Прошу прощения.

  Ответить  
 
 автор: sim5   (12.11.2008 в 17:04)   письмо автору
 
   для: Лена   (12.11.2008 в 16:52)
 

Лучше в функцию в таком случае передавать массив $_FILES, в нем можно узнать и $_FILES['img']['size']...

  Ответить  
 
 автор: Лена   (12.11.2008 в 17:20)   письмо автору
 
   для: sim5   (12.11.2008 в 17:04)
 

В смысле? Он же у меня и так передается. Делаю print_r($_FILES) внутри функции - все элементы массива выводятся, в том числе и $_FILES['img']['size']... Объясните, пожалуйста.

  Ответить  
 
 автор: sim5   (12.11.2008 в 18:34)   письмо автору
 
   для: Лена   (12.11.2008 в 17:20)
 

Пардон, у вас же в функции проверяется предача файла. Так и проверяйте его размер - $_FILES['img']['size'].

  Ответить  
 
 автор: Trianon   (12.11.2008 в 22:16)   письмо автору
 
   для: Лена   (12.11.2008 в 16:52)
 

if (move_uploaded_file($_FILES['img']['tmp_name'], $uploadfile_img)){
$filename = $_FILES['img']['tmp_name'];
if (filesize($filename) >= $max_img_size) echo "Размер файла больше". $max_img_size;
elseif (!exif_imagetype($filename)) echo "Неправильное расширение файла.";

Вы
1. перетащили файл с с места загрузки куда-то к себе
2. попытались проверить длину файла на месте загрузки
3. попытались проверить атрибуты длину файла на месте загрузки
Это всё при том, что на месте загрузки файла то уже нет. Вы ж его перетащили на п.1

Стоит ли удивляться ?

  Ответить  
 
 автор: Лена   (14.11.2008 в 12:43)   письмо автору
3.1 Кб
 
   для: Trianon   (12.11.2008 в 22:16)
 

Исправила, но все равно не грузится.
Проблемы:
в нужную папку грузится только текст, без картинок
текст в базе не грузится
картинки вообще никуда не грузятся
ошибок на странице нет

  Ответить  
 
 автор: sim5   (14.11.2008 в 12:51)   письмо автору
 
   для: Лена   (14.11.2008 в 12:43)
 

Я вам давал пример, причем с указанием относительных путей, который все загружал. И он у вас не работал?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования