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

Перемещение изображения на сервер

29.12.2015, 09:44. Показов 1744. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал код для перемещения изображения на сервер, на сайте с .com код работал, а сайт с .by в этом случае код не работает. Что не так? Подскажите пожалуйста!

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
  require_once 'images_config.php';
  require_once 'database_images.php';
$user_id = $_COOKIE['user_id'];
$subject = $_REQUEST['subject'];
$year = date('Y');
$month = date('m');
$day = date('d');
 
$upload_dir = HOST_WWW_ROOT . "e/";
 
$image_fieldname = "upl";  
$comments = NULL;
 
$php_errors = array(1=> 'Превышение макс. размера, указанного в php.ini',
                        2=> 'Превышение макс. размера, указанного в форме HTML',
                        3=> 'Была отправлена только часть файла',
                        4=> 'Файл для отправки не был выбран.');
                        
($_FILES[$image_fieldname]['error']==0)
or handle_error("сервер не может получить выбранное вами изображение.",
                $php_errors[$_FILES[$image_fieldname]['error']]);
                
@is_uploaded_file($_FILES[$image_fieldname]['tmp_name'])
or handle_error("вы пытались совершить безнравственный поступок!",
                "Запрос на отправку: файл назывался " . "'{$_FILES[$image_fieldname]['tmp_name']}'");
                
@getimagesize($_FILES[$image_fieldname]['tmp_name'])
or handle_error("вы выбрали файл для своего фото,".
                "который не является изображением.",
                "{$_FILES[$image_fieldname]['tmp_name']} " .
                " - не является изображением.");
                
$now = time();
while (file_exists($upload_filename = $upload_dir . $now .
                                     '-' .
                                     $_FILES[$image_fieldname]['name'])) {
    $now++;
}
 
@move_uploaded_file($_FILES[$image_fieldname]['tmp_name'], $upload_filename) 
or handle_error("возникла проблема сохранения вашего изображения!",
                "ошибка связана с правами доступа при перемещении " .
                "файла в {$upload_filename}");
 
$in_task = sprintf("INSERT INTO task_math" .
                             "(user_id, comments, address_t, year, month, day) " .
                      "VALUES ('%s', '%s', '%s', '%s', '%s', '%s');",
                      mysql_real_escape_string($user_id),
                      mysql_real_escape_string($comments),
                      mysql_real_escape_string($upload_filename),
                      mysql_real_escape_string($year),
                      mysql_real_escape_string($month),
                      mysql_real_escape_string($day));
                      
mysql_query($in_task)
  or mysql_error();
 
exit();
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.12.2015, 09:44
Ответы с готовыми решениями:

Перемещение изображения
Как можно переместить изображение из верхнего левого угла вниз, а затем вправо? Нуже небольшой пример такого кода.

Перемещение изображения мышкой
Добрый день, нужно реализовать перемещение изображения по метке. Метка(Label) меньше изображения, те на нее помещается только часть...

TCanvas, перемещение изображения
ситуация такова: на канве TImage есть график, у графика реализован зум при помощи перемножения координат и позиции TrackBar. Необходимо...

21
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
29.12.2015, 10:37
А ошибки какие?
0
0 / 0 / 1
Регистрация: 24.12.2015
Сообщений: 8
29.12.2015, 11:00  [ТС]
Точно, в базу все данные сохраняет, а изображение по нужному пути не перемещает.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
29.12.2015, 11:05
В HOST_WWW_ROOT что содержится?
1
0 / 0 / 1
Регистрация: 24.12.2015
Сообщений: 8
29.12.2015, 11:28  [ТС]
Спасибо!)) Был не верно указан путь
0
Заблокирован
29.12.2015, 23:06
Да, проверя пути всегда,
и стараймя в скриптх вообще не использовать пути,
а лучше делать их автоопределение.
0
7 / 8 / 5
Регистрация: 08.05.2015
Сообщений: 477
20.03.2017, 12:27
А что значит символ "@" вот здесь:
Цитата Сообщение от wladron Посмотреть сообщение
@move_uploaded_file($_FILES[$image_fieldname]['tmp_name'], $upload_filename)
move_uploaded_file - функция. Зачем ей "@"? Кстати, с обычными переменными тоже видел...
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
20.03.2017, 12:42
Цитата Сообщение от Eduardo_1992 Посмотреть сообщение
А что значит символ "@" вот здесь
Вот: http://php.net/manual/ru/langu... ontrol.php
1
7 / 8 / 5
Регистрация: 08.05.2015
Сообщений: 477
20.03.2017, 13:04
Para bellum, то, что нужно! Спасибо!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
20.03.2017, 13:20
Цитата Сообщение от Eduardo_1992 Посмотреть сообщение
то, что нужно
скорее, то, что не нужно
1
7 / 8 / 5
Регистрация: 08.05.2015
Сообщений: 477
20.03.2017, 13:21
KOPOJI, в любом случае, я с этим частенько сталкивался, но ни как не мог понять, что это такое. А через поиск не удавалось найти, так как я просто даже не знал КАК искать. Теперь знаю)
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
20.03.2017, 13:25
Цитата Сообщение от KOPOJI Посмотреть сообщение
скорее, то, что не нужно
Есть некоторые функции, которые помимо возврата "false" выбрасывают ещё и Warning. И ничего с этим не поделаешь. Неуправляемые они. Тут на помощь и приходит собака.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
20.03.2017, 13:36
Para bellum, например? Насколько помню, все это решается дополнительной проверкой перед вызовом такой функции.

Добавлено через 2 минуты
тем более что по хорошему в продакшне все эти ошибки должны фиксироваться в логах, что делается путем смены уровня вывода ошибок error_reporting

Добавлено через 3 минуты
например, часто пишут так:
PHP
1
@define('foo', 'bar');
чтобы избежать ошибки в случае существования такой константы (например, в битриксе есть такое)
А правильно это должно быть нечто наподобие такого:
PHP
1
defined('foo') or define('foo', 'bar');
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
20.03.2017, 14:09
Цитата Сообщение от KOPOJI Посмотреть сообщение
например?
unlink и ещё несколько есть, насколько помню.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
20.03.2017, 14:21
Para bellum, is_readable/is_writable разве не поможет ?
0
7 / 8 / 5
Регистрация: 08.05.2015
Сообщений: 477
20.03.2017, 14:24
KOPOJI, Para bellum, Вы сможете помочь мне здесь?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
20.03.2017, 14:30
Цитата Сообщение от KOPOJI Посмотреть сообщение
is_readable/is_writable разве не поможет ?
Если выполнять для пути файла -- нет. Хотя можно dirname вытащить из пути и папку на запись проверить.
file_get_contents, опять же, выдаст Warning, если удалённый ресурс недоступен.
fsockopen
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
20.03.2017, 15:03
Цитата Сообщение от Para bellum Посмотреть сообщение
Если выполнять для пути файла -- нет
Возвращает TRUE, если файл или директория, указанная в filename существует и доступна для чтения, иначе возвращает FALSE.
поэтому она отлично работает что для пути файла, что для пути директории.
Цитата Сообщение от Para bellum Посмотреть сообщение
file_get_contents
curl_init поможет узнать о существовании удаленного ресурса. Аналогично с сокетами
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
20.03.2017, 15:31
Цитата Сообщение от KOPOJI Посмотреть сообщение
поэтому она отлично работает что для пути файла, что для пути директории
Я не сказал, что функция не работает на файлах. А сказал, что если выполнить на файле -- мы доподлинно не узнаем, точно ли можно удалить его.
Попробуйте создать файл с правами 777. А на папку, в которой он лежит, установить права 644. Затем выполнить скрипт:
PHP
1
2
3
4
5
$file = __DIR__ . '/test.txt';
 
if (is_writable($file)) {
    unlink($file);
}
Несмотря на то, что is_writable выдаст true, удалить не сможете его. Из-за прав на папку.
Цитата Сообщение от KOPOJI Посмотреть сообщение
curl_init поможет узнать о существовании удаленного ресурса. Аналогично с сокетами
Т.е. перед file_get_contents надо выполнить curl_init/curl_exec? Допустим.
Всё равно нет гарантии, что file_get_contents отработает как надо. Ибо curl вернёт true, даже если сайтом будет возвращён статус "404", например. А file_get_contents Warning выдаёт из-за 404.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
20.03.2017, 15:58
ладно, ладно, признаю свою ошибку, что иногда может понадобиться при отладке использовать это.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.03.2017, 15:58
Помогаю со студенческими работами здесь

перемещение/поворот изображения
нужно создать простенький графический редактор, как осуществить подобное при загрузке изображения: ...

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

Перемещение изображения по клику
Всем привет! Сегодня весь день думаю, как сделать, чтобы мое изображение перемещалось по клику в то место, где я кликнул. Пожалуйста,...

Перемещение изображения по экрану
господа подскажите если я напишу вот так InvalidateRect(hwnd,NULL,TRUE)или вот так-InvalidateRect(hwnd,NULL,FALSE)экран мерцает,но это и...

Перемещение изображения в PictureBox
Доброго времени суток! 8-) - Имеется джостик подключенный к ПК через COMPort; - В программе форма с PictureBox с нарисованными осями...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru