Film verwijderen
bij het maken van een film-database ben ik druk bezig geweest met het uploaden van een film, wat nu immers ook gelukt is. Maar nu is het de vraag; hoe kan ik ze verwijderen? Ik zet bij het uploaden de film in een map in de root, en de naam van de film in de database, hoe krijg ik nu de naam uit de database en de film uit de map?
groet jeremy
En wat heb je al geprobeerd om het uit te zoeken?
Echter het bestand verwijderen zul je los van je DELETE query moeten doen. Aangezien dat geen entry is in je db, maar een fysiek bestand.
Tevens, als je dit in een live situatie gaat gebruiken (bij een hosting bedrijf). Raad ik het niet aan films naar je server te uploaden! Dan kan ik je bijna garanderen dat je binnen 5 dagen aan je datalimiet zit.
Gebruik daar of een FTP server, een fileshare site, een streaming server of video hosting service (youtube, etc) voor.
Let op dat uploaden naar je host data kost. Dat een video cachen naar de pc van de bezoeker data kost. Als je het lokaal gaat gebruiken om een prive DB bij te houden van je films kun je toch gewoon een link naar met het pad erbij doen?
Gewijzigd op 23/05/2012 10:56:05 door Chris PHP
Dat kan je met unlink() doen.
Maar inderdaad die DELETE query kan ik gebruiken, maar hoe bedoel je: kun je toch gewoon een link naar met het pad erbij doen?
Kan je wat meer vertellen?
Stel je webserver draait op C:\webser en je films staan op E:\films. Dan 'share' je de map E:\films en kun je hierheen verwijzen. Dan kun je zelfs in heel je netwerk deze films kijken (mits de pc aanstaat).
Dus dan wordt het bijvoorbeeld \\pc001\films\batman.avi en als je hier dan gewoon een hyperlink van maakt zal hij de film gelijk openen.
Mocht je een NAS hebben, kun je altijd en overal bij je films, aangezien je daar dan geen pc meer voor aan hoeft te hebben staan :D
P.S. als je met Win7 en Win XP machines door elkaar werkt in je netwerk, zorg dan dat je hosts file is aangepast. Anders je pc/NAS een fixed IP geven en i.p.v. \\pc001\films\batman.avi doe je dan \\192.168.1.102\films\batman.avi
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
// select filename van database
// fetch result
unlink('pathtofilename/'.$row['filename'];
//delete query uitvoeren
?>
// select filename van database
// fetch result
unlink('pathtofilename/'.$row['filename'];
//delete query uitvoeren
?>
Gewijzigd op 23/05/2012 11:02:15 door Bart V B
ik neem aan dat hij niet de film weg wil gooien. Waarom zou hij uberhaubt de film 2x op een locatie moeten zetten? Alles is lokaal, dus dan kan hij beter linken dan uploaden naar zijn lokale webserver root. Is onnodige ruimte verspilling lijkt me.
Chris en bart, beide bedankt!
Quote:
Ik zet bij het uploaden de film in een map in de root, en de naam van de film in de database, hoe krijg ik nu de naam uit de database en de film uit de map?
Volgens mij vraagt de TS toch echt hoe hij dit moet doen.
Hij heeft de files op zijn fileserver staan.
Jij geeft hem een advies om het extern te verhuizen.
Niet ik ook de TS niet ;)
Dus in zijn geval nu, is unlink volgens mij de enige juiste oplossing.
EDIT was wat laat met posten..
Gewijzigd op 23/05/2012 11:12:11 door Bart V B
Waarom wil je de bestanden 2x op je schijf hebben? Je hebt nu he films ergens op een schijf staan, en nu wil je zo ook nog eens kopieren naar je webserver root. Dat is toch ongeloofelijk oneffcient en zonde van je ruimte?
Wat is je reden dat je dubbel kopieren boven linken naar een bestaand bestand kiest?
Toevoeging op 23/05/2012 11:15:24:
@Bart,
Nee alles staat lokaal, ik raad niet aan om iets externs te verhuizen.
Hij heeft op een schijf de films staan (lokaal). Waarom zou hij ze dan nog een keer moeten kopieren/plaatsen in zijn webserver root? Dat is toch volkomen onlogisch.
Hij kan toch simpelweg de map waar de films nu al instaan delen en daarheen linken.
Om te voorkomen dat de films dus echt daadwerkelijk verwijdert worden. Het is gewoon een schoolopdracht, dat het onlogisch is kan ik later bij de docent neerleggen.
Heeft de leeraar je specifiek odracht gegeven om films naar de root te zetten, of om een film collectie app/site te maken?
een film site te maken :)
Alleen dat hij ze upload naar de root map.
uploaden is natuurlijk een breed woord in deze.
Zou me ook kunnen voorstellen dat de TS daar bedoeld ik download een film, en plaats ze in de rootmap van mijn file server. :)
Een opdracht die al 5 maanden loopt?
/me: nieuwsgierig is... ;-)
Gewijzigd op 23/05/2012 11:24:18 door - Ariën -
Hij zegt ook nergens dat hij ze op meerdere plaatsen heeft staan, maar dat gebeurd dus wel als je ze van een lokale schrijf gaat uploaden naar je web root (ook gewoon lokaal).
Dat is toch het zelfde als een film van je D schijf naar je E schijf kopieren dus niet verplaatsen.
hij krijgt wel de moviename mee, maar ik heb geen idee hoe ik hem nu uit de map in de root kan verwijderen.
En nog een tip: Variabelen butien quotes: Je staat nu een variabele te verbinden met een ongedefineerde constante.
1) Staat dit script in de zelfde map/folder als de films?
2) $moviename.mp4 gaat niet werken, .mp4 is nu geen tekst maar PHP code.
Om het jezelf makkelijker te maken raad ik aan ook gewoon de extentie mee te geven in de get.
Dus ipv pagina.pphp?movie_name=batman doe je dan pagina.php?movie_name=batman.mp4
Als je films in een andere map/folder staan als dit script zal het nooit gaan werken, aangezien hij nu naar een bestand zoekt in de zelfde folder als het script.
Toevoeging op 24/05/2012 10:30:31:
P.S. zou je antwoord kunnen geven op mijn eerdere vraag? Hieronder nogmaals.
Heeft de leeraar je specifiek odracht gegeven om films naar de root te zetten, of om een film collectie app/site te maken?
Gewijzigd op 24/05/2012 10:31:18 door Chris PHP