0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 19
1

Путаница с путями

22.10.2010, 18:24. Показов 1486. Ответов 11
Метки нет (Все метки)

Доброе время суток! Помогите решить проблему с изменением пути
Существует скрипт обработчика формы

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<html>
<head>
  <title>Результат загрузки файла</title>
</head>
<body>
<?php  
 
$messages = array();  
$imgDir = dirname(__file__) . "/gallery/"; // каталог для хранения изображений  
@mkdir($imgDir, 0777); // создаем каталог, если его еще нет  
if (isset($_POST['doUpload'])) {  
$data = $_FILES['userfile'];  
 
$tmp = $data['tmp_name'];  //это просто для удобства  
if ($_FILES['userfile']['size'] > 1024 * 6 *1024)
{
echo "<p>file too big</p>";
exit();
}
 if (@file_exists($tmp)) {  //итак, если файл на месте, то  
 $info = @getimagesize($_FILES['userfile']['tmp_name']); //берем информацию о файле  
   if (preg_match('{image/(.*)}is', $info['mime'], $p)) {  //убеждаемся что файл есть ни что иное как изображение  
 
 
 $newwidth = 600; //в данную переменную мы помещаем желаемую ширину файла  
 $newname = $imgDir.basename.($data['name']); //имя файла оставляем прежним  
  //осторожно! если файл с таким именем существует, то он будет перезаписан загружаемым  
   if ($info[0] < $newwidth){ // если ширина загужаемого изображения  
   //меньше заданной в переменной, просто сохраняем файл  
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newname)) {  
       $messages[] = "Файл успешно загружен. ";  
     }  
   else {  
       $messages[] = "Ошибка загрузки файла!";  
   }  
    }  
   else {  
    // а если больше, то ресайзим  
      if(resize($tmp, $newwidth, $newname)){  
        $messages[] = "Рисунок был успешно загружен и преобразован";  
     }  
    else {  
        $messages[] = "Произошла ошибка при загрузке файла";  
       }  
      }  
    }  
   else {  
       $messages[] = "Ошибка! Попытка загрузить файл недопустимого формата.";  
    }  
  }  
  else {  
       $messages[] = "Файл не был загружен.";  
  }  
 }  
?>  
  
 <ul>  
  <?php  
  foreach ($messages as $val) {  
      echo "<li>" . $val ."</li>";  
    }  
 ?>  
 </ul>  
 
  
<?php  
  function resize($photo_src, $width, $name){  
 $parametr = getimagesize($photo_src);  
 list($width_orig, $height_orig) = getimagesize($photo_src);  
  $ratio_orig = $width_orig/$height_orig;  
 $new_width = $width;  
  $new_height = $width / $ratio_orig;  
 $newpic = imagecreatetruecolor($new_width, $new_height);  
 switch ( $parametr[2] ) {  
  case 1: $image = imagecreatefromgif($photo_src);  
   break;  
   case 2: $image = imagecreatefromjpeg($photo_src);  
   break;  
  case 3: $image = imagecreatefrompng($photo_src);  
   break;  
 }  
 imagecopyresampled($newpic, $image, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);  
 imagejpeg($newpic, $name, 100);  
 return true;  
 }  
 ?> 
 
 
 <form name="upload" action="upload.php" method="POST" ENCTYPE="multipart/form-data">  
  Выберите изображение для загрузки: <input type="file" name="userfile"></ br>  
  <input type="submit" name="doUpload" value="Загрузить">  
 </form>  
</body>
</html>
Скрипт находится в блоке админа /admin/block
Скрипт рабочий, вот только одна проблема, как можно прописать путь к папке на уровне выше /images/gallery/ в строке:
PHP
1
$imgDir = dirname(__file__) . "/gallery/"; // каталог для хранения изображений
при любой смене директории получаю ошибку:
HTML5
1
2
3
Warning: move_uploaded_file(/home/test.ru/public_html/admin/block../images/gallery/basename282.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/test.ru/public_html/admin/block/upload.php on line 31
 
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/home/djviper/tmpphp/phpiPsreu' to '/home/test.ru/public_html/admin/block/../images/gallery/basename282.jpg' in /home/test.ru/public_html/admin/block/upload.php on line 31

Подстановка перехода "../" и установка реального пути ни к чему не привела все равно в начале пути присутствует "/home/test.ru/public_html/admin/block"

Подскажите где я делаю ошибку?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2010, 18:24
Ответы с готовыми решениями:

Путаница с динамическими путями к файлу (прибавление параметров).
Всем привет! Запуталась я, нужна помощь )) Есть 3 кнопки. Первая берет путь из Edit1.Text. ...

путаница с ОС
Совсем запутался весь. Помогите решить проблему. Значит стояла 7, решил установить себе еще XP, на...

Работа с путями
Вообщем есть строчки кода: 1. L.LoadFromFile('C:\kek.txt'); 2.L.SaveToFile('C:\kek.txt); как...

Задача с путями
вообщем задача такова, есть не сколько складов, сам задаю значение какое расстояния между ними, так...

11
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
22.10.2010, 18:36 2
так на уровень высше
PHP
1
$imgDir = dirname(__file__) . "../gallery/"
0
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 19
22.10.2010, 18:44  [ТС] 3
пробовал и такой вариант. Тупо создает папку gallery в папке block. на уровень выше не переходит. В конце поста об этом писал.
0
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
22.10.2010, 18:53 4
а так:
PHP
1
$imgDir = "../".dirname(__file__) . "/gallery/"
1
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 19
22.10.2010, 19:01  [ТС] 5
проблема осталась
HTML5
1
2
3
Warning: move_uploaded_file(..//home/test.ru/public_html/admin/block/gallery/basename2mdrngm.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/test.ru/public_html/admin/block/upload.php on line 31
 
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/home/djviper/tmpphp/phpVFfa4r' to '..//home/test.ru/public_html/admin/block/gallery/basename2mdrngm.jpg' in /home/test.ru/public_html/admin/block/upload.php on line 31
"../" переехала в самое начало адреса
0
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
22.10.2010, 19:07 6
а почему бы просто не написать:
PHP
1
$imgDir = "../gallery/";
1
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 19
22.10.2010, 19:11  [ТС] 7
Заработало!!!! Ура!!!! Спасибо большое!!! А не могли бы вы мне подсказать как при загрузке иллюстрации добавить ее имя в базу данных?
0
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
22.10.2010, 19:16 8
после 26-й строчки вставте:
PHP
1
2
$query="INSERT INTO `table_name` (`column_name`) VALUES ('".$newname."')";
mysql_query($query) or die(mysql_error());
1
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 19
22.10.2010, 19:28  [ТС] 9
Отлично работает, только вот одна небольшая проблема, в базу данных попадает имя файла с полным путем
HTML5
1
../../images/gallery/basename1.jpg
Можно ли вносить в базу только имена файлов, просто вся аккуратность базы накрывается медным тазом?
0
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
22.10.2010, 19:30 10
PHP
1
2
$query="INSERT INTO `table_name` (`column_name`) VALUES ('".$data['name']."')";
mysql_query($query) or die(mysql_error());
1
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 19
22.10.2010, 19:37  [ТС] 11
Красота! Спасибо огромное!!! Выручил
0
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
22.10.2010, 19:44 12
незачто)) обращайтесь))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2010, 19:44

Помощь в написании контрольных, курсовых и дипломных работ здесь.

ошибка с путями
компилирую: qmake -project lol.pro qmake make QT += network указал make выдает что не...

помогите с путями
есть файл загрузки он нахотится вот здесь site.com/adminka/foto/foto_news.php &lt;script...

проблема с путями
есть файл который находится в мойцайт.ru/news/admin там есть строчка // Формируем путь к файлу ...

Путаница в массиве
setlocale(LC_ALL, &quot;Russian&quot;); const int B = 11; int A; int index(-1); int count; cout &lt;&lt;...

Путаница с доменами
День добрый. Никак в толк не могу для себя взять как лучше всё организовать. А ситуация следущая:...

Путаница в операторах
Что же возвращает 6-ая строка? BOOL String::Invariants() const { #ifdef SHOW_INVARIANTS...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.