Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление фото на сайт. что не так ??? Добавление фото на сайт средствами php 
:(
    Опции темы
lutyi1984
Дата 4.10.2011, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 30.9.2011

Репутация: нет
Всего: нет



Ребята у меня проблема такого характера. мне нужно загрузить фото на сайт c файла admin/имя файла.php в "корневую" папку images , вот код который я использую
Код

<input type="file" name="myfile"  id="myfile" /></label> /*Строка для загрузки фото*/
в файле обработчике у меня следующее
<?php //================Настройки============= //
$maxwidth = "150px"; // максимальная ширина картинок на превью
$fotos_dir = "/../images//"; // Директория для фотографий 
$foto_name = $fotos_dir.time()."_".basename($_FILES['myfile']['name']); // Полное имя файла вместе с путем
$foto_light_name = time()."_".basename($_FILES['myfile']['name']); // Имя файла исключая путь
$foto_tag = "<img src=\"$foto_name\" border=\"0\">"; // Готовый тэг для вставки картинки на страницу
$foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">"; // Тот же тэг, но для превью

// Текст ошибок
$error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>";
$error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует или папка не обладает правами 777 - измените права данной папки</span>";



// Начало
if(isset($_FILES["myfile"]))
{
$myfile = $_FILES["myfile"]["tmp_name"];
$myfile_name = $_FILES["myfile"]["name"];
$myfile_size = $_FILES["myfile"]["size"];
$myfile_type = $_FILES["myfile"]["type"];
$error_flag = $_FILES["myfile"]["error"];

// Если ошибок не было
if($error_flag == 0)
{
        
    
$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = getcwd()."/../images//" . time()."_".basename($_FILES["myfile"]["name"]);/*куда зальём*/
if ($_FILES['myfile']['tmp_name'])
{

  
//Если не удалось загрузить файл

if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile)) 
{
echo "$error_by_file";
exit;
}

}
else
{
    echo 'Проблема: возможна атака через загрузку файла. ';
    echo $_FILES['myfile']['name'];
    exit;
}


// После удачной обработки файла, выводим сообщение
echo "<h3>Результат добавления фото на сайт:</h3> <br />";
echo "<b>Файл успешно скопирован в директорию:</b> ".$fotos_dir." <br /><b>Имя файла:</b> ".$foto_light_name."<br />";
echo "<br /><small>Превью загруженной картинки:</small> <br />$foto_tag_preview<br /><br />";

$img_foto = "$foto_light_name";

// Заносим путь картинки в базу данных
$q = mysql_query ("INSERT INTO tb_foto (title, img_foto, longdesc_foto ) VALUES ('$title','$img_foto','$longdesc_foto')");
$query = mysql_query($q);


// Данные успешно внесены в базу данных, выводим сообщение
if ($query == '') {
echo "<br /><b>Данные успешно внесены в базу</b>";
}

// В противном случае, выводим ошибку при добавлении в базу данных
else {
echo "$error_by_mysql";

}

        }
 
 elseif ($myfile_size == 0) {
 echo "Вы не выбрали файл для загрузки!";
 } 
    

}
?>



Если применять этот код на локальном сервере (localhost) , то всё работает как положено и фото грузиться в папку images, а вот когда это всё дело на сайте фото почему-то грузиться в корень сайта. Права на папку images 777 я выставил... Подскажите. что не так ??? 
PM MAIL   Вверх
krundetz
Дата 5.10.2011, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Посмотриете на сервере значение вот этой переменной:
Код

$upfile = getcwd()."/../images//" . time()."_".basename($_FILES["myfile"]["name"]);/*куда зальём*/




--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
MuToGeN
Дата 5.10.2011, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 7
Всего: 32



<form enctype="multipart/form-data">
</form>


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
lutyi1984
Дата 5.10.2011, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 30.9.2011

Репутация: нет
Всего: нет



Цитата(krundetz @  5.10.2011,  09:01 Найти цитируемый пост)
Посмотриете на сервере значение вот этой переменной:
Выделить всёкод PHP
1:
    
$upfile = getcwd()."/../images//" . time()."_".basename($_FILES["myfile"]["name"]);/*куда зальём*/


Вот что на локалке Z:\home\localhost\www\molod\images\
А вот что на сервере /domains/имя моего сайта/public_html/images

И что самое тронное, что на локалке всё работает а на сервере хоть убейся нет и всё... 
Где у меня тут ошибка ??? 
PM MAIL   Вверх
capitan
Дата 7.10.2011, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



Код

$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = getcwd()."/../images//" . time()."_".basename($_FILES["myfile"]["name"]);/*куда зальём*/


А почему не так?
Код

$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = $DOCUMENT_ROOT ."/images/" . time()."_".basename($_FILES["myfile"]["name"]);/*куда зальём*/

PM MAIL WWW ICQ   Вверх
lutyi1984
  Дата 11.10.2011, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 30.9.2011

Репутация: нет
Всего: нет



Цитата(capitan @  7.10.2011,  12:05 Найти цитируемый пост)
1:
2:
    
$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = getcwd()."/../images//" . time()."_".basename($_FILES["myfile"]["name"]);/*куда зальём*/


А почему не так?
Выделить всёкод PHP
1:
2:
    
$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = $DOCUMENT_ROOT ."/images/" . time()."_".basename($_FILES["myfile"]["name"]);/*куда зальём*/


по тому что данная директория ../images/ - означает что нужно залить в папку выше, а данная /images/ - в этой же папки залить....
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.