[PHP] - Upload default afbeelding

Pagina: 1
Acties:

Vraag


  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
Mijn vraag:
Ik ben met PHP een script aan het maken waarbij een gebruikers database wordt aangemaakt.
Hierbij kan er ook een avatar naar de database worden geupload.

Wat ik echter wil is dat er wanneer er geen avatar wordt geupload door de gebruiker er een standaard vanaf de server wordt geselecteerd en die wordt geupload naar de database.

if(empty($_FILES['avatar'])) {
upload="images/default.jpg";
} else {
upload="gebruikergeselecteerde avatar";
}

Zoiets dus zeg maar..
Natuurlijk klopt bovenstaande code niet anders zou ik de vraag niet hoeven stellen.
Maar is iets zoals dit mogelijk?

Ik heb al gezien dat het niet mogelijk is om een value aan een <input type="file"> te geven..
Veiligheidsaspect anders zou je een willekeurige standaard bestand kunnen uploaden van een gebruikers pc..

Is het mogelijk om een bestand naar de database te uploaden zonder het uit de $_FILES te moeten halen?

Beste antwoord (via Supremecy op 17-11-2017 12:09)


  • Swedish Clown
  • Registratie: November 2010
  • Laatst online: 10-04 22:41

Swedish Clown

Erlang <3

Supremecy schreef op donderdag 16 november 2017 @ 23:43:
@Brakkie41 .......
Het is echter de opdracht om de afbeelding uit te lezen vanuit de database.

........
Dat doe je ook ;) Dat het nou een null value blijkt te zijn als er geen afbeelding beschikbaar is, is dan logisch. Punt blijft, je leest de afbeelding uit de database. Er is echter geen afbeelding geüpload dus pas je een default toe. Die schop je echter niet naar de DB.

Probeer niet lullig over te komen maar eerder het punt te maken om requirements (schoolopdracht?) als Developer te interpreteren. Dat houdt IMHO dus in om vanuit je technische kant de oplossing toe te passen aan de opdracht. In mijn geval dus bovenstaande. Prima als Product/Management wil dat de afbeelding uit de db komt maar als er niks aangeleverd wordt schoppen we niet X aantal keer dezelfde zooi naar de db. Dat handel je prima in je applicatie laag af :)

Always looking for developers wanting to work with Erlang.

Alle reacties


Acties:
  • +1 Henk 'm!

  • thaan
  • Registratie: Oktober 2004
  • Laatst online: 08-10 19:39
Waarom überhaupt iets uploaden & niet gewoon bij het uitlezen van je DB controleren of het veld leeg is, en zo ja de standaard afbeelding weergeven? Dat voorkomt dat je meerdere malen dezelfde afbeelding in je database zet.

  • pachacuti
  • Registratie: Januari 2002
  • Laatst online: 14-09 12:40
Je kan je default file toch gewoon ophalen?

PHP:
1
2
3
if(empty($_FILES['avatar'])) {
    $upload = file_get_contents("images/default.jpg"));
}

  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
@thaan Klopt, zou inderdaad een goede oplossing zijn. Ik wil echter de afbeelding standaard uit de database ophalen.
In een gebruikelijke situatie zou dit echt de betere oplossing zijn.
Ik moet echter de afbeelding uit de database opvragen en wil dus een default kunnen uploaden.

@pachacuti Als dat inderdaad werkt zou dat de oplossing zijn.
Ik ben nog aan het leren programmeren in PHP en MySQL en dergelijke.
En van die optie had ik nog niet gehoord.

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 07:08

Reptile209

- gers -

Of bij het tonen van de avatar kijken of er eentje in de database staat, en zo niet dan een standaard plaatje tonen... hoef je niet eens te rommelen met je upload functie.

Zo scherp als een voetbal!


  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
@Reptile209 Zie het antwoord dat ik aan Thaan gaf, het is de bedoeling dat ik de avatar uit de database opvraag.
Normaal zou ik inderdaad zeggen ik gebruik een normale jpg die ik op de server heb staan, scheelt een hoop werk.

Acties:
  • +1 Henk 'm!

  • Swedish Clown
  • Registratie: November 2010
  • Laatst online: 10-04 22:41

Swedish Clown

Erlang <3

Supremecy schreef op donderdag 16 november 2017 @ 23:26:
@Reptile209 Zie het antwoord dat ik aan Thaan gaf, het is de bedoeling dat ik de avatar uit de database opvraag.
Normaal zou ik inderdaad zeggen ik gebruik een normale jpg die ik op de server heb staan, scheelt een hoop werk.
Ik blijf maar niet snappen waarom je op DAT moment nier kan checken of er niks is en vervolgens terugvalt op de default :? Je zal het resultaat van je query toch afhandelen neem ik aan? Meer dan een simpele “if null then default” is er niet nodig op dat moment?

Je lost het probleem IMHO op de verkeerde locatie op. Dat is hetgeen wat meerdere mensen hier duidelijk maken.

Kan je uitleggen waarom er per se een default geüpload moet worden? Requirements? Database constraints? Geen controle over de kant die de afbeelding uitleest?

Always looking for developers wanting to work with Erlang.


  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
@Brakkie41 Ik heb controle over zowel het uitlezen als het weg schrijven.
Het is echter de opdracht om de afbeelding uit te lezen vanuit de database.

Het is absoluut een betere oplossing om bij het uitlezen te controleren of er een afbeelding is geupload en indien dat niet het geval is hier een default jpg vanaf de server te gebruiken.

Acties:
  • +1 Henk 'm!

Verwijderd

Of je geeft het veld 'avatar' in je database de default waarde 'images/default.jpg', en slaat alleen wat anders op als er echt een avatar geupload is. ;)

De meest flexibele versie is natuurlijk om het bij het ophalen van de data te bepalen - dan kun je de default tenminste ook nog eenvoudig veranderen.

Acties:
  • Beste antwoord
  • +3 Henk 'm!

  • Swedish Clown
  • Registratie: November 2010
  • Laatst online: 10-04 22:41

Swedish Clown

Erlang <3

Supremecy schreef op donderdag 16 november 2017 @ 23:43:
@Brakkie41 .......
Het is echter de opdracht om de afbeelding uit te lezen vanuit de database.

........
Dat doe je ook ;) Dat het nou een null value blijkt te zijn als er geen afbeelding beschikbaar is, is dan logisch. Punt blijft, je leest de afbeelding uit de database. Er is echter geen afbeelding geüpload dus pas je een default toe. Die schop je echter niet naar de DB.

Probeer niet lullig over te komen maar eerder het punt te maken om requirements (schoolopdracht?) als Developer te interpreteren. Dat houdt IMHO dus in om vanuit je technische kant de oplossing toe te passen aan de opdracht. In mijn geval dus bovenstaande. Prima als Product/Management wil dat de afbeelding uit de db komt maar als er niks aangeleverd wordt schoppen we niet X aantal keer dezelfde zooi naar de db. Dat handel je prima in je applicatie laag af :)

Always looking for developers wanting to work with Erlang.


Acties:
  • +1 Henk 'm!

  • Supremecy
  • Registratie: Oktober 2013
  • Laatst online: 16-08 18:38
@Brakkie41 Ja, heb je eigenlijk ook weer gelijk in.
Dan inderdaad maar geen data in de database.

Beste oplossing is inderdaad om dat niets te uploaden maar een default afbeelding te gebruiken vanaf de webserver.

Acties:
  • 0 Henk 'm!

  • Ossebol
  • Registratie: Juni 2010
  • Laatst online: 05-10 20:04
thaan schreef op donderdag 16 november 2017 @ 23:16:
Waarom überhaupt iets uploaden & niet gewoon bij het uitlezen van je DB controleren of het veld leeg is, en zo ja de standaard afbeelding weergeven? Dat voorkomt dat je meerdere malen dezelfde afbeelding in je database zet.
Dit. En idealiter sla je helemaal geen afbeelding op in de database, maar slechts een URL die verwijst naar een afbeelding op de server. Scheelt weer opslag in je database. Dit doe je dus voor alle gevallen.

[ Voor 5% gewijzigd door Ossebol op 17-11-2017 20:15 ]

"One day, someone showed me a glass of water that was half full. And he said: 'Is it half full or half empty?' So I drank the water. No more problem." - Alexander Jodorowsky


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Niks staat je in de weg om een betere oplossing te maken dan de opdracht zelf is mits die laat zien dat je de stof beheerst.
Pagina: 1