Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/107: Рейтинг темы: голосов - 107, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31

Не пойму почему не работает move_uploaded_file()

17.12.2013, 15:58. Показов 19705. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Первые шаги в php.. Загружаю методом POST файл и хочу его сохранить в папку на сервере, новый файл перетирает предыдущий.
Все время получаю ошибку. Не работает ни на домашнем компе с Денвером на виндовс, ни на сайте у хостера.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$uploaddir = 'image/';
$uploadfile = $uploaddir . basename($_FILES['image000']['name']);
 
 
if (move_uploaded_file($_FILES['image000']['tmp_name'], $uploadfile)) {
    echo "\nOk.\n";
} else {
    echo "\nError!\n";
}
print_r($_FILES);
?>
Папка image создана в каталоге www.
print_r($_FILES) показывает что ошибок нет (== 0), размер файла ~0.5 МБ, показывает имя файла image000 и то что это octet-stream, то есть бинарный файл. Но всё время получаю ответ Error от этого кода.
Помогите разобраться пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2013, 15:58
Ответы с готовыми решениями:

Не пойму почему не работает?
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; using namespace System; enum class Suit {Clubs, Diamonds, Hearts, Spades}; int...

Не пойму почему не работает
Не пойму почему не работает полностью игра я нашел исходник игры и коечто добавил переделал и теперь у меня на форме 2 человечек не...

Не пойму почему не работает
Ответ просто не выводится и бесконечно просит ввести число #include&lt;stdio.h&gt; #include&lt;locale.h&gt; int NOD(int N, int M) { ...

15
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
17.12.2013, 16:19
Цитата Сообщение от bt1024 Посмотреть сообщение
$uploaddir = 'image/';
указывайте нормальный путь, а не огрызок к текущей директории
0
PHP developer
 Аватар для masik49
259 / 157 / 26
Регистрация: 20.03.2013
Сообщений: 1,018
17.12.2013, 16:21
Цитата Сообщение от bt1024 Посмотреть сообщение
Помогите разобраться пожалуйста.
Какую ошибку пишет?
Попробуйте прописать полный путь к папке, ну какой он у Вас:
PHP
1
2
3
4
5
6
7
8
9
10
11
$uploaddir = '/home/localhost/www/image';
if(!is_dir($uploaddir)){
    mkdir($uploaddir);
    $uploadfile = $uploaddir . basename($_FILES['image000']['name']);
      if (move_uploaded_file($_FILES['image000']['tmp_name'], $uploadfile)) {
         echo "\nOk.\n";
      } else {
            echo "\nError!\n";
      }
print_r($_FILES);
}
попробуйте...
0
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
17.12.2013, 16:30  [ТС]
Цитата Сообщение от ads Посмотреть сообщение
указывайте нормальный путь, а не огрызок к текущей директории
Так сделал потому что ранее писал функцию отображающую файлы в виде списка в браузере, писал это так:

PHP
1
2
3
4
5
if ($dir = opendir('img/')) {
        $for_open1=".bmp";
        $for_open2=".jpg";
.....
}
img - папка в каталоге www.

Я тут обнаружил что:
if(is_uploaded_file($_FILES['image000']['tmp_name'])){
echo "\nDownloaded.\n";
} else {
echo "\nError of download!\n";
}
тоже выдает ошибку, мир сошел с ума! Надо срочно его вернуть обратно..
Что это означает, почему is_uploaded_file тоже выдает ошибку? Код ошибки равен нулю в $_FILES
0
PHP developer
 Аватар для masik49
259 / 157 / 26
Регистрация: 20.03.2013
Сообщений: 1,018
17.12.2013, 16:41
Цитата Сообщение от bt1024 Посмотреть сообщение
мир сошел с ума!

Не по теме:

Это из раздела психиатрии, а не из раздела программирования



Давайте по делу, какую ошибку выдает, что пишет. Лог ошибок представьте!
0
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
17.12.2013, 16:55  [ТС]
Цитата Сообщение от masik49 Посмотреть сообщение
Какую ошибку пишет?
Попробуйте прописать полный путь к папке, ну какой он у Вас:
...
попробуйте...
Ошибку пишет в смысле функция выдает FALSE и мой код показывает это, а почему возникает ошибка не знаю.

Попробовал с полными путями:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$uploaddir = '/home/172.16.250.4/www/image';
$uploadfile = '';
 
if(is_uploaded_file($_FILES['image000']['tmp_name'])){
    echo "\nDownloaded.\n";
} else {
    echo "\nError of download!\n";
}
 
if(!is_dir($uploaddir)){
    mkdir($uploaddir);
}
$uploadfile = $uploaddir . basename($_FILES['image000']['name']);
if (move_uploaded_file($_FILES['image000']['tmp_name'], $uploadfile)) {
    echo "\nOk.\n";
}else{
    echo "\nError!\n";
}
 
print_r($_FILES);
print_r($uploadfile);
?>
Все равно ошибка.
Может это из-за старого денвера? Он монтируется как дополнительный Read Only диск V который просто копия папки на диске С. $_FILES показывает временный файл именно как лежащий на диске V. Логика подсказывает что разрабы должны были это учесть, но я тут пару дней бьюсь над этим вроде простым кодом.

Добавлено через 6 минут
Цитата Сообщение от masik49 Посмотреть сообщение

Не по теме:

Это из раздела психиатрии, а не из раздела программирования



Давайте по делу, какую ошибку выдает, что пишет. Лог ошибок представьте!
Боюсь показаться совсем чайником, но видимо это так, вот только нашел в сети где включить этот лог. Пробую.
0
PHP developer
 Аватар для masik49
259 / 157 / 26
Регистрация: 20.03.2013
Сообщений: 1,018
17.12.2013, 17:02
Цитата Сообщение от bt1024 Посмотреть сообщение
Он монтируется как дополнительный Read Only диск V который просто копия папки на диске С
Ваш диск V не копия диска C, а лишь копия папки с денвером.

Помоему Вы что то мудрите с кодом...Вы мой вариант пробовали??? Не пойму почему не работает move_uploaded_file()

Только за место локалхоста свою папку укажите. то беж
PHP
1
$uploaddir = '/home/172.16.250.4/www/image';
Добавлено через 2 минуты
Не пойму зачем Вы папку обозвали IP адресом??
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
17.12.2013, 17:06
Цитата Сообщение от bt1024 Посмотреть сообщение
'/home/172.16.250.4/www/image';
в виндовс не бывает таких путей
попробуйте тупо сохранить на c:\..
0
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
17.12.2013, 17:06  [ТС]
Цитата Сообщение от masik49 Посмотреть сообщение
Ваш диск V не копия диска C, а лишь копия папки с денвером.

Добавлено через 2 минуты
Не пойму зачем Вы папку обозвали IP адресом??
Это связано с доступом по сети, сайт доступен в сети по этому адресу (пока это для Андроида надо).

з.ы. с логом пока проблемы, не включается. Разбираюсь.


Кстати мне относительные пути в php нужны, так как разные пути у меня и на хосте. Что бы сайт был перемещабельным. Я думал папка www это есть корень сайта. Это не так?
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
17.12.2013, 17:09
Цитата Сообщение от bt1024 Посмотреть сообщение
сайт доступен в сети по этому адресу (пока это для Андроида надо).
сеть и локальные пути - две большие разницы. Для сохранения нужно писать локальный желательно абсолютный путь
0
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
17.12.2013, 17:14  [ТС]
Цитата Сообщение от masik49 Посмотреть сообщение
Ваш диск V не копия диска C, а лишь копия папки с денвером.

Помоему Вы что то мудрите с кодом...Вы мой вариант пробовали??? Не пойму почему не работает move_uploaded_file()
Да пробовал, вот его небольшая переделка: пост

Он переделан т.к. если $uploaddir существует то код сохранения файла не выполнится, переделка там минимальная.

Добавлено через 2 минуты
Цитата Сообщение от ads Посмотреть сообщение
сеть и локальные пути - две большие разницы. Для сохранения нужно писать локальный желательно абсолютный путь
В данном случае имя папки просто совпадает с IP адрессом машины. Для php это просто имя, такое же самое как и localhost.
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
17.12.2013, 17:17
Цитата Сообщение от bt1024 Посмотреть сообщение
просто совпадает с IP адрессом машины
оно может с чем угодно совпадать, вот только в виндовс не бывает диска "/"
0
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
17.12.2013, 17:56  [ТС]
Цитата Сообщение от ads Посмотреть сообщение
оно может с чем угодно совпадать, вот только в виндовс не бывает диска "/"
У виндовс не бывает, но мы "/" скармливаем php, а он с этим сам разбирается.
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
17.12.2013, 17:59
Цитата Сообщение от bt1024 Посмотреть сообщение
а он с этим сам разбирается
нуну
0
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 31
17.12.2013, 18:45  [ТС]
Цитата Сообщение от ads Посмотреть сообщение
нуну
Тем не менее это так, только что проверил.

--
Проблему решил, как всегда в таких простых случаях она оказывается совсем не там где ищешь. Спутал название файла и естественно функция не могла его найти.

В код добавил эти две строчки что бы видеть ошибки, с логом не получилось, не взлетело)). Собственно они и показали, что ошибка в названии файла.
Code
1
2
ini_set('display_errors','On');
error_reporting(E_ALL | E_STRICT);
После правки всё заработало. Всем спасибо за участие и помощь!
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
17.12.2013, 20:12
Цитата Сообщение от bt1024 Посмотреть сообщение
Тем не менее это так, только что проверил.
блажен кто верует. везение это еще не закономерность
Цитата Сообщение от bt1024 Посмотреть сообщение
Спутал название файла
вам об этом твердили на двух страницах. лучше поздно чем никогда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2013, 20:12
Помогаю со студенческими работами здесь

Не пойму, почему не работает
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; ...

не пойму почему не работает
есть код str = &quot;&lt;карта&gt;&lt;_2&gt;&lt;_1&gt;&lt;_0 x=&quot;1&quot; y=&quot;2&quot; z=&quot;3&quot; /&gt;&lt;_1 x=&quot;11&quot; y=&quot;22&quot; z=&quot;3&quot; /&gt;&lt;/_1&gt;&lt;_2&gt;&lt;_0 x=&quot;1&quot; y=&quot;2&quot; z=&quot;3&quot; /&gt;&lt;_1 x=&quot;1&quot;...

Не пойму почему не работает ?
Sub task1() Dim x, y, y1 As Integer Dim str As String Лист1.Activate str = InputBox(&quot;введите число x&quot;) x = Val(str) If (x...

Не пойму почему не работает программа
Написать логическую функцию, принимающую значения True, если в целом числе, являющимся единственным аргументом этой функции, сумма цифр –...

Не пойму почему не работает код?
Не пойму почему не работает код? package labor6.feladat1; import static labor6.feladat1.Labor6Feladat1.tomb; /** * @author...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru