Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Аплоад изображений

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: нужна помосч!
CyberBoss
Отправлено: 16 Февраля, 2007 - 19:41:48
Post Id



Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Февр. 2007  
Откуда: Boston, USA


Помог: 0 раз(а)




сроцно нужен help!
вобщем проблема...
ЗАДАЧА: Аплоад изображений! Баннеров! (также возможность загрузки *.SWF). В общем необходимо загрузить баннер определённого размера на сервер с формы! При загрузке надо проверить размер изображение и вес! (с этим вроде всё понятно)
НО! ПОТОМ НАДО ПРЕДЕЛИТЬ РАСШИРЕНИЕ ИЗОБРАЖЕНИЯ (.swf,.gif и т.д.) и засуть это изображение в папку на сервер с наименованием расширения! при том что имя иэтого изображения (т.е. путь к нему) задаётся маской вида

"$banner_pattern = 'banners*jpg*ban%07d.%s';" - тут "*" - слеши и маска показана для изображений jpg

в базу записывается id баннера и его расширение, соответственно потом из неё делается выборка
после загрузки надо вывести все загруженые баннеры! отображение баннеров (т.е. вставка пути к файлу баннера) в теги <img> и <embed>(для флеша)
также берётся из маски которая написана выше и имеет вид, примерно

src='sprintf( $banner_pattern, $banner_id, $banner_ext );'

вобщем проблема как динамически меня маску при записи пути в тег в зависимости от расширения баннера...

"$banner_pattern = 'banners*jpg*ban%07d.%s';"
"$banner_pattern = 'banners*gif*ban%07d.%s';"
и т.д. сам уже долго несплю работаю.. щас вот наткнулся на эту тупую проблему! ВСЁ! СТУПОР! НИЧЕГО СДЕЛАТь НЕ МОГУ! ПЕРЕПРОБЫВАЛ ВСЁ!
в лучшем случае путь баннера вставляется, но сам баннер не отображается... (тоже кстати интересно почему так происходит)

(Добавление)
сижу вот... в растерянности туплю...
очень расчитываю на скорую помощ
 
 Top
valenok Модератор
Отправлено: 17 Февраля, 2007 - 09:14:47
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Определять расширение уже умеем?
imagetype() или substr($img,strrpos($img,'.'))\n\n(Добавление)
потом "$banner_pattern = 'banners*".$type."*ban%07d.%s';"


-----
Truly yours, Sasha.
 
My status
 Top
CyberBoss
Отправлено: 17 Февраля, 2007 - 14:01:09
Post Id



Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Февр. 2007  
Откуда: Boston, USA


Помог: 0 раз(а)




вопрос! а можно к флеш баннерам применять стандартные функции для изображений: GetImageSize() и т.д.?
и что будет если флеш баннер прогнать через эти функции?\n\n(Добавление)
а что за функция imagetype()?
 
 Top
valenok Модератор
Отправлено: 17 Февраля, 2007 - 16:27:02
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




php.net/imagetypes
Определяет тип картинки если он:
IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM.

А что тебе мешает попробовать прогнать через эти ф-ции флэшку?
Скорее всего будет работать.

Также существует расширение EXIF для работы с картинками, а если ты планируешь заниматься баннерами то очень полезно такое иметь.
* EXIF поддерживает и флэшки


-----
Truly yours, Sasha.
 
My status
 Top
CyberBoss
Отправлено: 18 Февраля, 2007 - 21:24:17
Post Id



Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Февр. 2007  
Откуда: Boston, USA


Помог: 0 раз(а)




ААААААААААААААААА!!!
вроде со всем справился... НО!!!!!
теперь загруженые изображения в браузере не отображаются! что это может быть и как с этим бороться7 поскажите пожалуйста!
нуу картинка вроде отображается, но как белый пустой лист! пробывал открывать в ФаерФоксе и в ИЕ, ТОЖЕСАМОЕ!
 
 Top
CyberBoss
Отправлено: 18 Февраля, 2007 - 23:24:08
Post Id



Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Февр. 2007  
Откуда: Boston, USA


Помог: 0 раз(а)




плииз.. слёзно расчитаваю на вашу помощь...
прилогаю иходний всей той шняги которая аплоадит...
я конечно понимаю, что копаться в коде это нудно... но, тем не менее, буду бесконечно благодарен тем, кто поможет исправить ситуацию...
вообщем загруженые изображения неотображаются... может что-то в коде не так?
Скачать файл: type1.rar
Скачан раз: 241
 
 Top
valenok Модератор
Отправлено: 19 Февраля, 2007 - 06:14:04
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А браузере есть такая штука:
Вид
Там внутри в этом меню есть : показать исходный код.
Это показывает html страницы.

Кусок с картинкой будьте добры.
И убедитесь что он не лежит в каком нибудь div'e с атрибутом hidden\n\n(Добавление)
Но сюда только после того как попытаетесь сами:
зайти в нужную папку и посмотреть оказывается ли там какой либо файл с нужным названием, потом открыть его и узнать показывает ли ваш Windows Pictures & Fax viewer это изображение нормально.
Потом тупо правой кнопкой мышки по клавиатуре и открыть припомощи..
ФФ и ИЕ
Потом проверить html документ такого содержания :
<img src='img.gif' />
Потом искать ошибку у себя в html'e и пхп коде ответсвенном за вывод картинки.

Лучше начать с предпоследнего - может оказаться меньше этапов отладки. \n\n(Добавление)
Ничего не работает[dot] Что делать?


-----
Truly yours, Sasha.
 
My status
 Top
evgenijj
Отправлено: 19 Февраля, 2007 - 10:16:48
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




К сожалению, скрипт приводится не полностью, откуда берутся переменные - неясно. Например, переменные $add (это $_POST["add"]?), $photo, $photo_name. Произвольно выдранный кусок кода. Без контекста понять где ошибка трудно.
PHP:
скопировать код в буфер обмена
  1.  
  2. <form action="./?b=type1" method="post" enctype="multipart/form-data">
  3. Файл баннера:
  4. <input type="file" name="photo" />
  5. <input id="btn" type="submit" name="add" value="Добавить новый баннер" />
  6. </form>
  7.  


Заменить
if ( $add and is_uploaded_file($photo))
на
if ( isset($_POST["add"]) and is_uploaded_file($_FILES['photo']['tmp_name']))

Заменить
move_uploaded_file( $photo, $newfile );
на
move_uploaded_file( $_FILES['photo']['tmp_name'], $newfile );

Заменить
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. while ( $photo = mysql_fetch_assoc($photo_) )
  4.         $newfile = "banners/".$photo[ext]."/".$photo[ban_id].".".$photo[ext];
  5.         unlink($newfile);
  6. ?>
  7.  

на
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. while ( $photo = mysql_fetch_assoc($photo_) )
  4. {
  5.         $newfile = "banners/".$photo[ext]."/".$photo[ban_id].".".$photo[ext];
  6.         unlink($newfile);
  7. }
  8. ?>
  9.  

иначе будет удалятся только последний отмеченный баннер - функция unlink вне цикла.

Вот этот кусок кода мне тоже не нравится:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. mysql_query( "INSERT INTO banners_net1 ( ext,usr_id ) VALUES ( '$photo_ext','$myid' )" );              
  4. $photo_id = mysql_insert_id();
  5. $newfile = "banners/".$photo_ext."/".$photo_id.".".$photo_ext;
  6. move_uploaded_file( $photo, $newfile );
  7. ?>
  8.  

Я бы сперва попытался загрузить файл, и если загрузка прошла успешно - добавить запись в таблицу БД.
if ( move_uploaded_file( $_FILES['photo']['tmp_name'], $newfile ) ) mysql_query( "INSERT INTO ... " );

Что за функция alert?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if ( $photo_size > $photo_maxsize ) // размер файла
  4.     alert("Размер файла превышает ".ConvertSize($photo_maxsize)." байт" );
  5. ?>
  6.  

Это PHP, а не JavaScript Улыбка
 
 Top
CyberBoss
Отправлено: 19 Февраля, 2007 - 11:00:33
Post Id



Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Февр. 2007  
Откуда: Boston, USA


Помог: 0 раз(а)




нуу лююди... я конечно всё понимаю... но я не идиот...
вопервых...
функция алерт моя и простая... она ПХПШНАЯ!
function alert($mes){?><script>alert('<?=$mes?>');</script><?}

во вторых...
valenok пишет:
Но сюда только после того как попытаетесь сами:
зайти в нужную папку и посмотреть оказывается ли там какой либо файл с нужным названием, потом открыть его и узнать показывает ли ваш Windows Pictures & Fax viewer это изображение нормально.
Потом тупо правой кнопкой мышки по клавиатуре и открыть припомощи..
ФФ и ИЕ
Потом проверить html документ такого содержания :
<img src='img.gif' />
Потом искать ошибку у себя в html'e и пхп коде ответсвенном за вывод картинки.

Лучше начать с предпоследнего - может оказаться меньше этапов отладки.


всё это ЕССТЕСТВЕННО ПРОДЕЛАЛ...
1. файл есть
2. винда его отображает
3. <img src='img.gif' /> ЕСТЬ! указывает src указывает на существующий файл

ставлю даже на левой странице <img src='img.gif' /> (с путём к загруженному баннеру)
и он не отображается...

ВООООООООООООТ! надеюсь чтонибудь дельно посоветуете

P.S. evgenijj! спасибо что уделил внимание моему коду :о)\n\n(Добавление)
<img src='banners/gif/4.gif' border='1' width='468' height='60'>

вот такой тег формирует скрипт при отображении загруженного баннера....
4.gif - существует и действительно лежит в тех каталогах

но непоказывается...\n\n(Добавление)
ещё фича...
загружаешь 2 баннера... НИФИГА! НЕ ОТОБРАЖАЮТСЯ!
удаляешь любой... ТОТ КОТОРЫЙ ОСТАЛСЯ ОТОБРАЖАЕТСЯ!
потом жмёшь ф5 и всё... даже тот который остался тоже пропадает...
просто бело поле 100*100
 
 Top
evgenijj
Отправлено: 19 Февраля, 2007 - 11:29:22
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Цитата:

всё это ЕССТЕСТВЕННО ПРОДЕЛАЛ...
1. файл есть
2. винда его отображает
3. <img src='img.gif' /> ЕСТЬ! указывает src указывает на существующий файл

ставлю даже на левой странице <img src='img.gif' /> (с путём к загруженному баннеру)
и он не отображается...

Как там говорил Станиславский? НЕ ВЕРЮ!
Чудес не бывает. Если файл есть, ACDSee его отображает, остается одно - неправильный путь.

P.S. был у меня раз прикол - в имя файла как-то попала русская буква: imagе.gif. Не показывается картинка - и все тут. Не сразу я нашел эту ошибочку Улыбка. Может в имени каталога banners есть русская буква?

Если вдруг у тебя редактор html без подсветки кода - проверь, может где забыл закрывающую кавычку " - например в атрибуте тега <td class="myclass>Содержимое ячейки...
 
 Top
CyberBoss
Отправлено: 19 Февраля, 2007 - 16:19:55
Post Id



Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Февр. 2007  
Откуда: Boston, USA


Помог: 0 раз(а)




и ещё...
ЖЕНЕЧКО!
ЭТО НЕ БЕЗКОНТЕКСТНЫЙ КУСОК КОДА! ЭТО ПОЛНОСТЬЮ РАБОТАЮЩИЙ , НЕАЗВИСИМЫЙ СКРИПТ! АБСОЛЮТНО! можешь проверить...
хм... думаю вот что может смутить:
<form action="./?b=type1" method="post" enctype="multipart/form-data">
НО! "/?b=type1" - это всеголишь адрес страницы...
и если он в таком виде, то понятно, что обращение идёт к индексной странице

по поводу $add (это $_POST["add"]?), $photo, $photo_name. :
посмотри на на форму отправики повнимательнее... у сабмина name add (на странице несколько форм, перехватывая сабмиты можно упрощать работу с данными из разных форм)
насчот $photo, тоже нимательнее смотри на форму.... Улыбка

хм... ах ну да... понимаю что $photo_name могло вызвать впечатление "выдраного куска кода" НО!
давай посорим справчник Улыбка

я процетирую:
Цитата:

Далее идёт содержимое $_FILES. Обратите внимание, что здесь предполагается использование имени 'userfile' для загружаемого файла, как в примере скрипта ранее:

$_FILES['userfile']['name']
Оригинальное имя файла на клиентской машине.

$_FILES['userfile']['type']
mime-тип файла, если браузер предоставил эту информацию. Пример: "image/gif".

$_FILES['userfile']['size']
Размер загруженного файла в байтах.

$_FILES['userfile']['tmp_name']
Временное имя файла, под которым загруженный файл был сохранён на сервере.

Примечание: в PHP версии до 4.1.0 она называлась $HTTP_POST_VARS и не была автоглобальной переменной. PHP 3 не поддерживает $HTTP_POST_FILES.

Если register_globals включена в php.ini, то будут доступны нижеследующие переменные. Обратите внимание, что имена этих переменных предполагают использование имя файла для загрузки 'userfile', как в примере предыдущего скрипта:

$userfile - Временное имя файла, под которым загруженный файл был сохранён на сервере.

$userfile_name - Оригинальное имя или путь к файлу на системе отправителя.

$userfile_size - Размер загруженного файла в байтах.

$userfile_type - mime-тип файла, если браузер предоставил эту информацию. Пример: "image/gif".

Заметьте, что часть "$userfile" этих переменных это имя, которое записано в поле <input> type="file" в форме загрузки. В предыдущем примере формы мы назвали её "userfile".


Улыбка я думаю теперь понятно от куда взялась переменная $photo_name, а также подобные $photo_size ?

в целом я считаю скрип более-менее грамотный и функциональный...
но вот что-то взбойнул....\n\n(Добавление)
ыых.... вощем всё...
еси чрез 2 дня не здам проект
можна уже стразу подбирать катофалк...\n\n(Добавление)
хммммм щас ещё выяснилась любопытная весч!
при обращении к файлу с тегами/путями к картинками через эксплоер
картинке не отображаются... (http://www.reanimator.kz/crealink/test.htm)

а при запуске test.htm просто с компа C:homereanimator.kzwwwcrealinktest.htm
картинки отображаются...\n\n(Добавление)
хм... чота со слешами на форуме..
нуко
////////////////////////////////\n\n(Добавление)
////\\\\\\\\\
 
 Top
evgenijj
Отправлено: 19 Февраля, 2007 - 17:03:00
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Стиль программирования гм... Но картинки показывает:


Извиняюсь, Интернет вечером пропал, а сисадмин уже ушел. Вот то, что у меня на локальном компьютере.
Так что скрипт работает - просто незаметная ошибка (типа русская буква в имени директории)
 
 Top
CyberBoss
Отправлено: 19 Февраля, 2007 - 17:27:14
Post Id



Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Февр. 2007  
Откуда: Boston, USA


Помог: 0 раз(а)




хм а у меня не показывает...
всё что хочешь показыват, а вот именно загруженные изображения не показывает...\n\n(Добавление)
evgenijj пишет:
Стиль программирования гм... Но картинки показывает:

Нажмите для увеличения
[AD]

Нажмите для увеличения
[AD]


эти картинки я тоже не вижу!

 
 Top
valenok Модератор
Отправлено: 19 Февраля, 2007 - 20:03:52
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




CyberBoss пишет:
всё это ЕССТЕСТВЕННО ПРОДЕЛАЛ...
1. файл есть
2. винда его отображает
3. <img src='img.gif' /> ЕСТЬ! указывает src указывает на существующий файл


Так, файл загружается, винда его отображает.
Проблема в отображении.
Если <img src='img.gif' /> показывает картинку, ищи неполадки в скрипте который генерирует тот самый src
Если не отображает - пиши в тех. поддержку браузера
потому что явно чего то не хватает.
Скорее всего на самом деле вкралась ошибка с какой нибудь русской буквой, или лишним пробелом или т.д.
Потому что если у тебя компьютер (windows fax viewer) показывает картинку а <img src='img.gif' /> нет, то увы форумом ты ошибся.


\n\n(Добавление)
Если windows и <img src='img.gif' /> показывают картинку,
то разместите тут кусок кода отвечающий за генерацию пути к картинке,
только с уже определенными переменными.
Тоесть так чтоб нам с Евгением не пришлось идти искать в мануле что из себя представляет та или иная переменная.


-----
Truly yours, Sasha.
 
My status
 Top
CyberBoss
Отправлено: 19 Февраля, 2007 - 22:20:43
Post Id



Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Февр. 2007  
Откуда: Boston, USA


Помог: 0 раз(а)




<table border="0" cellpadding="0" cellspacing="2" class="bar_default" align=center class=td2>
<tr valign="top">
<? while ( $photov = mysql_fetch_assoc( $photo_ ) ) {
$photov[ext] = htmlspecialchars($photov[ext]); //ext поле в базе хранящее расширение

?>
<td class="">
<table border="0" cellspacing="0" cellpadding="3">
<tr valign="top">
<td><?=$i?></td>
<td><input class="control_checkbox" type="checkbox" onClick="ChUnch(this)" name="photo_id[]" value="<?=$photov[ban_id]?>"></td>
<td width="50%" align="center">
<?
$src="banners/".$photov[ext]."/".$photov[ban_id].".".$photov[ext]; //ban_id - поле в базе хранящее id имажы
if ($photov[ext]!='swf'){echo"<img src=$src border='1' width='468' height='60'><img src=loading.gif>";}
else {
echo"
<object classid='clsidГолливудская улыбка27CDB6E-AE6D-11CF-96B8-444553540000' id='obj1' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0' border='0' width='468' height='60'>
<param name='movie' value='$src'>
<param name='quality' value='High'>
<param name='menu' value='false'>
<embed src='$src' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' name='obj1' width='468' height='60'>
</object>
";
}


?>

</td>
</tr>

вот вроде всё...
видовс отображает картинку
<img src='img.gif' > тоже показывает картинку если запускаю его на компе как простой хтмл файл
</table>\n\n(Добавление)
хмм вроде все переменные понятны..
вот единственное ещё

$photo_ = mysql_query( "SELECT * FROM banners_net1" );
\n\n(Добавление)
ЛЮЮДИИИ!!!!! ПЛИИЗ!! Я ТАМ ВЫКЛАЫДВАЛ КОД!
НЕСОЧТИТЕ ЗА ТРДУД! ПОПРОБУЙТЕ У СЕБЯ ЕГО ЗАПУСТИТЬ И ПОПРОБЫВАТЬ! ЭТО НЕ ДОЛГО НО БУДУ ВАМ СИЛЬНО БЛАГОДАРЕН!
щас вообще нахожусь в состояни жуткого тупика!!!!

вот структура таблицы

CREATE TABLE banners_net1 (
ban_id int(10) unsigned NOT NULL auto_increment,
usr_id int(10) unsigned NOT NULL default '0',
ext char(3) NOT NULL default '',
KEY ban_id (ban_id)
) TYPE=MyISAM;

папка с баннерами (куда всё загружается)
соответственно
banners/gif/
banners/jpg/
banners/png/
banners/swf/
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB