Beste lezers/helpers

Nieuw op het forum dus hoop me vraag goed zit. Ik ben al lang bezig met een "upload" & "wijzig foto" script in php.

Op een locatie elders op de website wil ik een foto online kunnen wijzigen.
deze foto heeft b.v. foto2.png en heeft een formaat 150px x 150px

Nu heb ik een upload script nodig wat later in een beveiligde htaccess (wat mij wel lukt) bestand komt.
Maar ik moet een begin hebben...
Ik ben al lang bezig geweest met de volgende site:


Ik ben al war rond gaan kijken en een upload script lukt wel, maar de locatie waar de foto heen gaat is me een raadsel.
Hoe kan ik een foto online wijzigen die elders op een locatie staat, ZONDER ik in ftp dit moet wijzigen?

note: Ik bezit een eigen directadmin & webhost (handig voor mysql)

iemand een idee hoe ik op weg geholpen kan worden in php?
Ik neem aan dat je een relatief pad (bijv
afbeelding_kat.png) opslaat in de database?

Maar wat bedoel je met wijzigen? De formaten? Of zoek je een editor?
probeer anders eerst een simpel uploadscript te bouwen.
Niet voor een image, maar gewoon _een_ bestand.

Dan leer je daarmee hoe je een bestand uploadt, waar het dan blijft en hoe je het op een plek naar wens zet.

Daarna kun je dat uitbreiden tot een script dat zorgt dat het alleen plaatjes zijn,
en nog een stap verder zou het resizen zijn.(al is uit je post niet duidelijk of dat een doel is).

De basis van een uploadscript staat hier uitgelegd:
https://www.phphulp.nl/php/tutorial/php-algemeen/uploaden/848/uploaden/2382/
Hallo helpers

Fijn jullie me op weg helpen.

Ik heb besloten vanaf een lege notepad te beginnen, om het overzichtelijker te maken.

ik heb een bestand gemaakt met de naam "upload.php"
Ik heb de volgende code hierin gezet:

<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="file" name="naam_formveld_uploadfile"/><br />
<input type="submit" value="Upload!"/>
</form>

En de resultaat is: https://www.melodyexpress.nl/upload.php
ik kan dus een (afbeelding) uploaden....

Hierna heb ik een map aangemaakt met de naam "afbeeldingen" en 1 foto erin gezet met de naam "foto2.png" (150x150 pixels)

Nu heb ik op: https://www.melodyexpress.nl/afbeeldingen/foto2.png een afbeelding staan die ik gewijzigd wilt hebben naar b.v. foto1.png

ik upload dus een andere foto vanuit de browser (zie script hierboven) , en klik op "upload"
maar dan???? er staat: Geen bestand gekozen

Wat zou me volgende stap moeten zijn?
Ik denk dat het een rechtenkwestie is:

weet, dat er meerdere users zijn op een server.
1) een "ftp" user die bijvoorbeeld ericb heet
2) www, apache www-user etc, die de eigenaar is van het process "webserver"

Als jij een bestand via ftp uploadt dan is dat van ericb.
PHP dat onder user www-user draait mag dan niet zo maar dat bestand aanpassen.

Vandaar ook chmod. Dat deelt rechten uit aan bestanden. Bijvoorbeeld 644 wil zeggen
rw, w, w
dus de eigenaar mag read en write; groepsleden mogen Read en others ook alleen R

Stap 1 zou zijn, om dit bestand 666 als rechten te geven.
Dan maak je het bestand "vogelvrij": elk process mag hem veranderen, overschrijven of verwijderen.

Dit probleem zou niet optreden als het bestand door PHP daar was neergezet: dan was www-user eigenaar en doorgaans heeft die zelf dan ook schrijfrechten.
Hoi ivo

Bedankt voor je info!

Dus jij bedoeld ik nu de file "upload.php" een "666" als recht moet instellen bij ftp?
klopt.
Als tussenoplossing, omdat je het bestand er zelf met ftp ingezet hebt.
De bovenliggende map moet ook beschrijfbaar zijn door de webserver.
daarom moet die 777 hebben

Of beter zou het zijn, als die map van owner of group www-user zou zijn. Maar dat vereist nog een paar stappen. Laten we nu even voor 777 gaan.
(en dat is dus alleen voor mappen. Bestanden op een webserver hebben altijd genoeg aan een 6, nooit een 7 of een 5, aangezien dat een bestand uitvoerbaar maakt en dat is zelfs voor een php script op een website niet nodig)
De tekst 'geen bestand gekozen' is gewoon een placeholder van het upload-element in HTML waar uiteindelijk de gekozen bestanden in genoemd worden. Geen foutmelding dus.

Je verwijst naar het uitvoeren opnieuw naar dezelfde URL, waar het uploadformulier weer klaar staat om nieuwe upload te ontvangen.

Ikzelf gebruik het uploadscript van Verot.net. Aanrader.
Ivo dit is gelukt.

de map "afbeeldingen" wat in de root zit heb ik nu 777 als recht gegeven.
de file "upload.php" heb ik nu de rechten 666 gegeven.

Ariën bedankt voor je info, nu zou ik als volgende stap een nieuwe php pagina moeten maken die verwijst naar de map "afbeeldingen" ?
nee!
niet het bestand upload.php

Ik had de indruk dat jouw foto2.png niet overschreven kon worden.
Die moest beschrijfbaar worden voor php. Dus dat bestand heeft 666 nodig (in dit geval)

upload.php moet gewoon 644 blijven.

Anders zou een php-proces zo maar je script kunnen overschrijven. Dat moet je niet willen.
Als het goed is heb ik hem nu juist aangepast.

op mijn ftp als volgt staan:

* map "afbeeldingen" met recht 777
* in de map "foto2.png" met recht 666
* upload.php met recht 644

Vanavond kan ik weer verder, ik waardeer enorm je steun
het zal wel een lange weg zijn maar ga ervanuit dit nu juist staat?

Reageren