Slet image fra mysQl + ftp ?

Tags:    php

Hej,

Er det muligt at kunne slette et image fra FTP som bare bruger på hjemmesiden.

Slet sit billed fra db. nemt nok.
Men slet fra ftp, ud fra det valgte id som billedet fik i uploaded.


Det vil jo rydde en del op i det, hvis det kunne slettes når et medlem vil slette sit billed. Hvorpå det også forsvandt fra ftp mappen.
Så det ikke bare ligger og fylder plads. :)



33 svar postet i denne tråd vises herunder
16 indlæg har modtaget i alt 31 karma
Sorter efter stemmer Sorter efter dato
når du sletter fra db hvorfor sletter du så ikke den fysiske file fra serveren ??, hvorfor vil du blande FTP ind der ??
slet fil unlink
slet dir rmdir (dir skal være tomt)





Indlæg senest redigeret d. 04.08.2012 16:19 af Bruger #16075
Hej mureren,

1. Når et medlem trykker "slet" sker dette så fra samme server hvor billedet også ligger?

1.1 Hvis ja så kan du gøre brug af unlink fra php : http://dk.php.net/unlink

1.2 Hvis nej så kan du gøre brug af ftp fra php: http://php.net/manual/en/book.ftp.php




Er ikke helt med.

Alle billeder i albums, gemmer i en mappe ved navnet: fotoalbums

Den ligger først for, på ftpen.

Og i db, gemmes samme navn som på ftp. Der er dog et id ved alle billeder i db.


Det du misforstår er, ftp er bare en protokol til gavn for dig så du kan forbinde udefra til din server med for eksempel filezilla.
Når du har et php script liggende på din server, kan scriptet slette og manipulere filer direkte i dine mapper på serveren uden noget ftp.

FTP er til gavn for dig, ikke din server :)



Okay :)
Hvordan havde du så tænkt i retning af hvordan man fik lavet en slet fil, i php ?.

Så den slettede billedet ud fra et id til billedet?
Vil godt betale for dette.


Jeg ville lave en ekstra kolonne i den tabel i din database som gemmer billederne.
I denne kolonne kunne man gemme det tilknyttede billedes filnavn, og på den måde nemt slette det igen senere.

Der hvor du sletter fra din DB kan du lige hente filnavnet ud først og så proppe det i $filename i funktionen herunder:
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 05.08.2012 05:02 af Bruger #16319
@Mureren her er lidt code du kan starte på (blive inspiraret af), jeg laver en liste fra db, og du kan så markerer dem du vil slette. der slettes først den fysiske fil og derefter recorden fra db
http://test.olsensweb.dk/mureren/mureren.zip



lynhurtigt oversat til det gamle php API mysql http://test.olsensweb.dk/mureren/mureren1.zip
tag og kig på http://dk.php.net/manual/en/mysqlinfo.api.choosing.php

ext/mysqli | PDO_MySQL | ext/mysql
Lifecycle Active | Active | Long term deprecation announced


når du skal lave et nyt program så brug mysqli, du kan starte blødt og anvende Procedural style, så er det ikke det store spring.
men bedre er det at anvende Object oriented style, og evt anvende Prepared Statements læs feks denne guide på eksperten, størrer sikkerhed.
En anden løsning er at anvende PDO, så er du ikke bundet af mysql databaser, og kan let migrarer over til andre databaser feks oracle




Det er da lidt dumt, at bruge mysql frem for mysqli protokollen ... MySQL bliver udfaset i de kommende versioner af PHP.



>får fejl i linie 6.
du skal angive din connection ($conn), når det er inde i en function, og så er det blandet lidt OOP style og Procedural style
Fold kodeboks ind/udPHP kode 


går ud fra du bare har fjernet brugernavn/password til db, og din db hedder n, og så mangler du at retunerer din $connect
Fold kodeboks ind/udPHP kode 


Det er da lidt dumt, at bruge mysql frem for mysqli protokollen....

det var dagens underdrivelse, det er torske dumt :)



Indlæg senest redigeret d. 05.08.2012 17:04 af Bruger #16075
>For ellers må jeg jo i gang med at sætte mig ind i det nye
har ikke lige fundet officielt vertions nummer eller dato, men at springe fra mysql til mysqli Procedural style det er et meget lille spring, der er stort set ikke noget at sætte sig ind i.
Fold kodeboks ind/udPHP kode 


alle dine mysql_ functioner skal grundlæggende bare have tilføjet et i (mysqli_), og parameter rækkefølgen kan være anderledes. så der er ikke så meget at sætte sig ind i

$rs = mysql_query($sql, $conn); bliver til $rs = mysqli_query($conn,$sql);
$row = mysql_fetch_assoc($rs); bliver til $row = mysql_fetch_assoc($rs);

du har stadig de sammen sikkerheds risisi i "mysqli Procedural style" som du har i mysql APIet, mysqli er bare holbart i længere tid

og sådan er det hele vejen igennem, og din brug af phpmyadmin er stadig den sammen, også hvis du går over i OOP



mkdir("/public_html/Medlem/$uploaddir",'0777');



t