fopen

10 отговора 202 прегледа
#1

fopen

Здравейте,
ситуацията е следната:

Потребителя кликва върху линк от вида href=[линк]

в резултат след запитване към базата данни, трябва да се отвори съответната картинка която отговаря на това id или имам URL със файл ([линк])

Ако използвам fopen() нищо не се получава или излизат разни символи вместо картинка. Пробвах да сложа header("Content-Type: image/gif"); и това работи, но само ако веднага след него сложа и fopen("[линк]", "r");

На мен обаче ми трябва тази картинка да я сложа в таблица и тогава на първия ред в скрипта слагам header-а, след това си правя таблицата и някъде по средата на файла се опитвам да сложа картинката. Но не се получава. Пробвах и рази комбинации с readfile() но със същия успех.

Или обобщено
fopen("[линк]", "r"); // това работи
fopen("[линк]", "r"); //това не работи

с fopen могат ли да се отварят файлове през http?
проблема идва от това че не е сигурно че всички файлове които ще се отварят ще се намират на същия съръвър, а дори и да са на един и същ сървър може да са в различни директории.

Трябва ми помоща Ви.

Редактирано от $burov на

Отговор
в отговор на $burov #2

Ама чакай сега,

не разбирам, защо трябва да отваряш файла с fopen? Не може ли просто да генерираш пътя до него като текст и да го изведеш в изходното ХТМЛ?

[линк]
Отговор
в отговор на $burov #3

Re: fopen

<? // file.php
/*
Retreiving filename and location for pic with id=12
*/
Header("Content-type:image/gif");
$imagefile=fopen($filename,"r");
fpassthru($imagefile);
fclose($imagefile);
?>

v html <img src=file.php?id=12>
tova li ti triabva ?

Отговор
в отговор на voyager #4

Ако е картинка

Ако е картинка - може, обаче ще се отварят игри, все още незнам точно какви но нещо като флаш игри. В момента в демото отварям с <img src=file.gif> обаче само за демото съм си сложил един гифчета, иначе ще е друго.

Отговор
в отговор на ruja #5

Re: fopen

Може би това е което ми трябва, но този header малко ме притеснява. Знам, че трябва да го има, но когато го сложа в началото на файла, а пък fopen някъде навътре във скрипта - няма да стане. Идеята е че файла (картинка или игра) трябва да се отвори във таблица. Така че не мога да сложа header-a заедно с fopen някъде вътре - първо правя част от таблицата и после искам fopen

Отговор
в отговор на $burov #6

Re: Ако е картинка

ами не знам, пак ми се струва по-целесъобразно да направиш проверка за типа на файла тогава и в зависимост от нея да генерираш различен хтмл таг - <img>, <object> или каквото там трябва . Поне аз така бих го направил

[линк]
Отговор
в отговор на $burov #7

Re: fopen

ama ti fopen i header go slagash na skript koito ti generira kartinka, a sami script ti e v src na image.

tablicata si e tablica, neia shte ia pravish otdelno ... a vutre kato slagash image s id, sloji toia script

Отговор
в отговор на ruja #8

Re: fopen

бях правил нещо подобно с GD за един брояч, но въобще не се сетих за <img src=file.php?id=3>


благодаря, това май ще ми свърши работата

Отговор
в отговор на $burov #9

btw

to stava pak i s tova fopen()
davash require (file.php);
i headera i fopen sa edno sled drugo i shte si raboti

Отговор
в отговор на voyager #10

java &amp; flash

Пробвах да включа някоя флаш игра и стана много лесно - само с едно include. Естествено променям и src в embed като слагам пълния път до флаш файла. Но с Java (или може би JavaScript, незнам) игрите продължавам да имам трудности. Значи играта си върви като няколко файла в една директория. Във съответния html файл има само едно вкарване на някакъв клас, а всъщност класовете са няколко. Слагам пълния път до класа, но явно другите файлове не могат да бъдат открити. Нямам опит с подобни неща (класове и т.н.) и може би не се прави така, но отворих този клас в Notepad и нищо не можеше да се проче. А предполагам че някъде вътре в него се включват и другите файлчета. С какво да го отворя и да го редактирам?

Отговор
в отговор на $burov #11

Re: java &amp; flash

Такаааа... Не съм 100% разбрал как го правиш, но - Жава игрите /*със сигурност е Жава, а не Жаваскрипт, щом са класове*/, наистина имаш проблем. Ако зависи от тебе как точно ще влизат те, по-добре ги направи jar архиви - един jar архив съдържа в себе си всичките класове, обаче трябва да окажеш името само на джар архива, което е доста по-лесно. Освен това се сваля по-бързо.
Клас не може да прочетеш с Нотепад. Трябва ти изходния .java файл. Ако нямаш достъп до .java файловете, може да използваш DJ Java Decompiler /*пусни сърч за него, не знам адрес, но е българска програмата*/, за да декомпилираш .class файловете до .java файлове. Обаче след като нанесеш корекции, ще трябва да ги компилираш наново.

It`s more fun to compute

[линк]
Отговор