Проблеммы с загрузкой изображений

Тема в разделе "PHP", создана пользователем rafic, 10 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. rafic

    rafic

    Регистр.:
    14 май 2008
    Сообщения:
    477
    Симпатии:
    24
    Всем доброго времени суток. Столкнулся с такой проблемой:
    Писал скрипт загрузки изображения на сайт. На localhost работает нормально, а после того как поставил его на сервер в интернете он начал глючить. В чем может быть проблема? Права на запись на папку выставил 777 все :bc:должно по идее работать, но не работает.
    PHP:
    //Создание нового элемента портфолио
    if ($_REQUEST['new_portfolio_object']=='Загрузить'){
    $link=mysql_connect($host,$dbuser,$dbpas);
    mysql_select_db($dbname);
    $object_name=$_POST['object_name'];
    $text=$_POST['description'];
    if (!
    file_exists('./portfolio/'.$_FILES['userfile']['name'])){
    if (
    is_uploaded_file($_FILES['userfile']['tmp_name'])){
    if (
    $object_name!=''){
    if (
    $text!=''){
    copy($_FILES['userfile']['tmp_name'],'./portfolio/'.$_FILES['userfile']['name']);
    $filepath='./portfolio/'.$_FILES['userfile']['name'];
    $query="INSERT INTO portfolio (num,name,pict,descr) VALUES ('','','$filepath','')";
    mysql_query($query);
    $color='green';
    $answer='Изображение успешно загружено.';
    $result=mysql_query("SELECT * FROM portfolio");
    $num=mysql_num_rows($result);
    mysql_query("UPDATE portfolio SET name = '$object_name' WHERE pict = '$filepath'");
    mysql_query("UPDATE portfolio SET num = '$num' WHERE pict = '$filepath'");
    mysql_query("UPDATE portfolio SET descr = '$text' WHERE pict = '$filepath'");
    $color='green';
    $answer='Элемент портфолио успешно добавлен.';
    }else{
    $color='red';
    $answer='Введите описание элемента портфолио!';};
    }else{
    $color='red';
    $answer='Введите имя элемента портфолио!';};
    }else{
    $color='red';
    $answer='Не удалось загрузить изображение!';};
    }else{
    $color='red';
    $answer='Изображение с таким именем уже существует!';};
    mysql_close($link);
    };
     
  2. Atec

    Atec

    Регистр.:
    28 апр 2007
    Сообщения:
    296
    Симпатии:
    31
    Что значит "глючить" какие ошибки выдает - не выдает, заливает - не заливает, файлы нулевого размера? Что не работает короче?

    Возможно на папку tmp для аплода не установлены верные права - на мастерхосте это папка tmp рядом с www
     
  3. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Так попробуй:
    PHP:
    move_uploaded_file($_FILES['userfile']['name'],'./portfolio/');
    вместо
    PHP:
    copy($_FILES['userfile']['tmp_name'],'./portfolio/'.$_FILES['userfile']['name']); 
     
  4. rafic

    rafic

    Регистр.:
    14 май 2008
    Сообщения:
    477
    Симпатии:
    24
    глючит - это значит не заливает. На локалке работает, а на хостинге нет. Сейчас попробую предложенное решение и отпишусь.
     
  5. localhost:80

    localhost:80 Постоялец

    Регистр.:
    4 дек 2008
    Сообщения:
    102
    Симпатии:
    15
    неполный путь к файлу в функции копирования загруженного файла.
    PHP:
    copy($_FILES['userfile']['tmp_name'],$_SERVER["DOCUMENT_ROOT"].'portfolio/'.$_FILES['userfile']['name']);
    ну и название файла всегда меняйте, например на md5($_FILES['userfile']), а то вам зальют туда пхп скрипт
     
  6. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    http://ru.php.net/manual/en/features.file-upload.errors.php

    смотри ошибки аплоада
     
Статус темы:
Закрыта.