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

Статус
В этой теме нельзя размещать новые ответы.

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);
};
 
Что значит "глючить" какие ошибки выдает - не выдает, заливает - не заливает, файлы нулевого размера? Что не работает короче?

Возможно на папку tmp для аплода не установлены верные права - на мастерхосте это папка tmp рядом с www
 
Так попробуй:
PHP:
move_uploaded_file($_FILES['userfile']['name'],'./portfolio/');
вместо
PHP:
copy($_FILES['userfile']['tmp_name'],'./portfolio/'.$_FILES['userfile']['name']);
 
глючит - это значит не заливает. На локалке работает, а на хостинге нет. Сейчас попробую предложенное решение и отпишусь.
 
неполный путь к файлу в функции копирования загруженного файла.
PHP:
copy($_FILES['userfile']['tmp_name'],$_SERVER["DOCUMENT_ROOT"].'portfolio/'.$_FILES['userfile']['name']);
ну и название файла всегда меняйте, например на md5($_FILES['userfile']), а то вам зальют туда пхп скрипт
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху