/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
is_file()
Fra : Dennis Munding


Dato : 25-11-09 01:50

Hej NG!

Jeg er stødt ind i et problem med is_file().

Situation:
Hjemmeside med medlemmer.
Mappe med billeder af medlemmerne.

Hvis ikke der er et billede af medlemmet, indsættes et
"billede-mangler"-billede.
Men indtil nu har jeg været nødt til at lave en kopi af sidstnævnte og
uploade det hver gang, der kommer et nyt medlem uden billede.
Det er jo ikke holdbart i længden!

Så slog det mig, at jeg kunne bruge is_file() - troede jeg. For jeg kan ikke
få det til at virke!??

Der hentes data om medlemmet fra db, så billede-navnet er lig med
medlemsnavnet:

$img = $name;
$stand-in = "dummy";

is_file($img) {
echo "<img src='mappe/$img.jpg'>";
} else {
echo "<img src='mappe/$stand-in.jpg'>";
}

Af en eller anden grund, kan jeg ikke få det til at virke...

Nogen ideer?


Med venlig hilsen
--
Dennis Munding
a.k.a. The Eye - Member of the PosseGrim Squad
http://pgsquad.com/
"When you hear the wind - you're already dead..."


 
 
Stig Johansen (25-11-2009)
Kommentar
Fra : Stig Johansen


Dato : 25-11-09 02:00

Dennis Munding wrote:

> Nogen ideer?

Jeg ville sætte billedenavn='mangler' i databasen ved oprettelse af et
medlem.

Når man så uploader billedet, kan man opdatere databasen med det rigtige
billede.

Dvs. styre det via databasen i stedet for filniveau.

--
Med venlig hilsen
Stig Johansen

Dennis Munding (25-11-2009)
Kommentar
Fra : Dennis Munding


Dato : 25-11-09 03:35

Hej Stig!
Stig Johansen skrev...
>> Nogen ideer?
>
> Jeg ville sætte billedenavn='mangler' i databasen ved oprettelse af et
> medlem.
>
> Når man så uploader billedet, kan man opdatere databasen med det rigtige
> billede.
>
> Dvs. styre det via databasen i stedet for filniveau.

Hmm...
Ikke en dårlig idé, selv om det vil kræve lidt omstrukturering.

Det vil jeg kigge lidt på.

Tak for indsparket.


Med venlig hilsen
--
Dennis Munding
a.k.a. The Eye - Member of the PosseGrim Squad
http://pgsquad.com/
"When you hear the wind - you're already dead..."


Stig Johansen (25-11-2009)
Kommentar
Fra : Stig Johansen


Dato : 25-11-09 06:51

Dennis Munding wrote:

> Hmm...
> Ikke en dårlig idé, selv om det vil kræve lidt omstrukturering.

Det er vel ikke andet end at have et felt på medlemmet f.eks
imagepath varchar (255), og udfylde det med
mappe/stand-in.jpg
og så opdatere det i upload funktionen med
mappe/fil.navn.fra.upload

Så får du samme navn på serveren som det navne brugeren har på sin PC.

--
Med venlig hilsen
Stig Johansen

Peter Farsinsen (25-11-2009)
Kommentar
Fra : Peter Farsinsen


Dato : 25-11-09 09:31

Dennis Munding wrote:
> Der hentes data om medlemmet fra db, så billede-navnet er lig med
> medlemsnavnet:
>
> $img = $name;
> $stand-in = "dummy";
>
> is_file($img) {
> echo "<img src='mappe/$img.jpg'>";
> } else {
> echo "<img src='mappe/$stand-in.jpg'>";
> }
>
> Af en eller anden grund, kan jeg ikke få det til at virke...
>
> Nogen ideer?

Ja, du mangler starten af din if-konstruktion og at konkatenere '.jpg'
på dit argument til is_file();

if(is_file($img.'.jpg')) {
...
} else {
...
}

--
Peter Farsinsen
fornavn@efternavn.dk

scootergrisen (25-11-2009)
Kommentar
Fra : scootergrisen


Dato : 25-11-09 03:46

is_file fortæller om det er en almindelig fil fremfor en mappe. Den
fortæller altså ikke om filen findes.
http://php.net/manual/en/function.is-file.php

jeg tror du leder efter :

file_exists()

den fortæller om filen findes.

http://php.net/manual/en/function.file-exists.php

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
}
?>

Du kunne også vælge at lave din kode sådan at der som standard peges
på "billedmangler.jpg" indtil folk uploader et billed.

Da jeg downloadet PHP 5 så fulgte der en rigtig god PHP 5 hjælpe
manual med, den er rigtig god så prøv lige og check om du ikke har
den. på min puter ligger den under START > PROGRAMMER > PHP 5.

Ellers brug http://www.php.net/

Peter Farsinsen (25-11-2009)
Kommentar
Fra : Peter Farsinsen


Dato : 25-11-09 12:17

scootergrisen wrote:
> is_file fortæller om det er en almindelig fil fremfor en mappe. Den
> fortæller altså ikke om filen findes.
> http://php.net/manual/en/function.is-file.php

Det er faktisk ikke korrekt:

Returns TRUE if the filename exists and is a regular file, FALSE otherwise.

file_exists() er også et godt bud, men så har man ingen garanti for, at
det er en fil og ikke et bibliotek.

--
Peter Farsinsen
fornavn@efternavn.dk

Leif Neland (25-11-2009)
Kommentar
Fra : Leif Neland


Dato : 25-11-09 22:40

Dennis Munding skrev:
> Hej NG!
>
> Jeg er stødt ind i et problem med is_file().
>

>
> $img = $name;
> $stand-in = "dummy";
>
> is_file($img) {
> echo "<img src='mappe/$img.jpg'>";
> } else {
> echo "<img src='mappe/$stand-in.jpg'>";
> }
>
> Af en eller anden grund, kan jeg ikke få det til at virke...
>



Du leder efter "hans", hvis det findes, vil du vise "mappe/hans.jpg"
Det hænger jo ikke sammen

Du skal nok kigge efter den fil, du vil vise...

Og is_file() ser efter filer i filsystemet, mens <img...> er i
"web-systemet"

F.ex. is_file("/usr/bruger1/www/mappe/hans.jpg") svarer til
"http://www.mundig.dk/mappe/hans.jpg"

Husk at tage højde for det.

Leif

Dennis Munding (26-11-2009)
Kommentar
Fra : Dennis Munding


Dato : 26-11-09 04:06

Hej Leif!
Leif Neland skrev...
>> $img = $name;
>> $stand-in = "dummy";
>>
>> is_file($img) {
>> echo "<img src='mappe/$img.jpg'>";
>> } else {
>> echo "<img src='mappe/$stand-in.jpg'>";
>> }
>
>
> Du leder efter "hans", hvis det findes, vil du vise "mappe/hans.jpg"
> Det hænger jo ikke sammen

Det har du ret i...
Hvilket - udover at jeg manglede den vigtige detalje at skrive if foran -
osse var mit problem - viste det sig.

> Du skal nok kigge efter den fil, du vil vise...
>
> Og is_file() ser efter filer i filsystemet, mens <img...> er i
> "web-systemet"
>
> F.ex. is_file("/usr/bruger1/www/mappe/hans.jpg") svarer til
> "http://www.mundig.dk/mappe/hans.jpg"

Det var bl.a. stien, det var galt med.
Jeg havde skrevet (da jeg havde rettet efter Peter Farsinsens indlæg):

if(is_file("/sti/til/fil/".$img.".jpg)) {
.......

Det viste sig, at den første / skulle fjernes.

Nu spiller klaveret!

Tusind tak til alle for jeres indspark!


Med venlig hilsen
--
Dennis Munding
a.k.a. The Eye - Member of the PosseGrim Squad
http://pgsquad.com/
"When you hear the wind - you're already dead..."



Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409074
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste