login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Video upload script.

Offline arthurheijm - 06/11/2013 21:36 (laatste wijziging 06/11/2013 23:49)
Avatar van arthurheijmLid Ik ben op zoek, na een video, avi upload script.
Omdat ik graag eigen gemaakte avi bestanden naar mijn website kan uplouden.
Wie weet er toevallig een, of wil mij er bij helpen er een in elkaar te zeten.

tot op heden heb ik dit.
  1. <?
  2. ini_set('display_errors',1);
  3. //kijken of er een bestand is geselecteerd
  4. if(isset($_FILES['bestand'])) {
  5. //als het bestand groter is dan 102400 bytes(100kb) word hij niet toegelaten
  6. if($_FILES['bestand']['size'] > 102400) {
  7. echo "Het bestand is <b>" . $_FILES['bestand']['size'] . "</b>, het maximale toegstaan is <b>102400</b>";
  8. } else {
  9. //kijken of het bestand wel een gif, png of jpg is
  10. if($_FILES['bestand']['type'] == "application/x-troff-msvideo" ||
  11. $_FILES['bestand']['type'] == "video/avi" ||
  12. $_FILES['bestand']['type'] == "video/msvideo" ||
  13. $_FILES['bestand']['type'] == "video/x-msvideo" ||
  14. $_FILES['bestand']['type'] == "image/gif" ||
  15. $_FILES['bestand']['type'] == "image/png" ||
  16. $_FILES['bestand']['type'] == "image/pjpeg" ||
  17. $_FILES['bestand']['type'] == "image/jpeg")
  18. {
  19. //kijken of er een nieuwe naam aan het bestand is gegeven
  20. if(empty($_POST['naam'])) {
  21. $naam = $_FILES['bestand']['name'];
  22. } else {
  23. //strip de extensie om die achter de nieuwe bestandsnaam te plakken
  24. $x = strrchr($_FILES['bestand']['name'], ".");
  25. $naam = $_POST['naam'] . $x;
  26. }
  27. //het bestand uploaden met de nieuwe of oude naam
  28. move_uploaded_file($_FILES['bestand']['tmp_name'], "../video/" . $naam);
  29. //voor linux of unix hosts chmodden we het bestand naar 777 zodat iedereen um kan zien
  30. chmod("../video/" . $naam, 0777);
  31. } else {
  32. echo "Het bestand is geen png, jpg, gif of avi";
  33. }
  34. }
  35. } else {
  36. echo "Selecteer een bestand";
  37. }
  38.  
  39. ?>
  40. <form action="" method="post" enctype="multipart/form-data">
  41. <b>Bestand:</b> <input type="file" name="bestand"><br>
  42. <b>Nieuwe naam:</b> <input type="text" name="naam"><br>
  43. <input type="submit" name="submit" value="Upload">
  44. </form>

Hierin heb ik de MIME Types aan gepast.
Maar dit heeft geen effect op het uploaden.

foto's uploaden gaat wel goed.

7 antwoorden

Gesponsorde links
Offline UpLink - 06/11/2013 23:26 (laatste wijziging 06/11/2013 23:27)
Avatar van UpLink ...
  1. //als het bestand groter is dan 102400 bytes(100kb) word hij niet toegelaten
  2. if($_FILES['bestand']['size'] > 102400)


Filmpjes van 100kb lijken mij juist geteld 1 seconden te duren... ALS dat al mogelijk is...

Zeker dat daar je probleem niet ligt?

Anders moet je ook eens nagaan op welke max_file_size je hebt in je config van Apache... Die kan ook tegenwerken als je bestand groter is dan wat daar ingesteld staat...
Offline arthurheijm - 06/11/2013 23:41 (laatste wijziging 07/11/2013 00:33)
Avatar van arthurheijm Lid Mijn max file size staat op 20m ingesteld.
Het bestand dat ik wilde uploaden is 18m.
De instelling heb ik inmiddels veranderd na 1024000000.
Maar het werkt nog steeds niet.
Ook een if functie er in, maar geeft niets aan bij een avi maar wel bij een foto.
Ook krijg ik geen fout melding van de error reporting te zien.
  1. <?
  2. ini_set('display_errors',1);
  3. //kijken of er een bestand is geselecteerd
  4. if(isset($_FILES['bestand'])) {
  5. //als het bestand groter is dan 20480000000 bytes(100kb) word hij niet toegelaten
  6. if($_FILES['bestand']['size'] > 20480000000) {
  7. echo "Het bestand is <b>" . $_FILES['bestand']['size'] . "</b>, het maximale toegstaan is <b>20480000000</b>";
  8. } else {
  9. //kijken of het bestand wel een gif, png, jpg of avi is
  10. if($_FILES['bestand']['type'] == "application/x-troff-msvideo" ||
  11. $_FILES['bestand']['type'] == "video/avi" ||
  12. $_FILES['bestand']['type'] == "video/msvideo" ||
  13. $_FILES['bestand']['type'] == "video/x-msvideo" ||
  14. $_FILES['bestand']['type'] == "image/gif" ||
  15. $_FILES['bestand']['type'] == "image/png" ||
  16. $_FILES['bestand']['type'] == "image/pjpeg" ||
  17. $_FILES['bestand']['type'] == "image/jpeg")
  18. {
  19. //kijken of er een nieuwe naam aan het bestand is gegeven
  20. if(empty($_POST['naam'])) {
  21. $naam = $_FILES['bestand']['name'];
  22. } else {
  23. //strip de extensie om die achter de nieuwe bestandsnaam te plakken
  24. $x = strrchr($_FILES['bestand']['name'], ".");
  25. $naam = $_POST['naam'] . $x;
  26. }
  27. //het bestand uploaden met de nieuwe of oude naam
  28. move_uploaded_file($_FILES['bestand']['tmp_name'], "../video/" . $naam);
  29.  
  30. //voor linux of unix hosts chmodden we het bestand naar 777 zodat iedereen um kan zien
  31. chmod("../video/" . $naam, 0777);
  32.  
  33. if (move_uploaded_file($_FILES['bestand']['tmp_name'], "../video/" . $naam) == true)
  34. {
  35. echo "ERROR: Het bestand is NIET verplaatst";
  36. } else {
  37. echo "Het bestand is verplaatst na ../video/" . $naam;
  38. }
  39.  
  40. } else {
  41. echo "Het bestand is geen png, jpg, gif of avi";
  42. }
  43. }
  44. } else {
  45. echo "Selecteer een bestand";
  46. }
  47.  
  48. ?>
  49. <form action="index.php?pagina=video_nieuw" method="post" enctype="multipart/form-data">
  50. <b>Bestand:</b> <input type="file" name="bestand"><br>
  51. <b>Nieuwe naam:</b> <input type="text" name="naam"><br>
  52. <input type="submit" name="submit" value="Upload">
  53. </form>
Offline Thomas - 07/11/2013 14:38
Avatar van Thomas Moderator Bij het uploaden van (grote) bestanden moet je rekening houden met de volgende zaken:
- (php instelling) upload_max_filesize: de maximale grootte van één geupload bestand
- (php instelling) post_max_size: de maximale grootte van ALLE POST-data (dus zowel tekstvelden, textareas én ook bestanden)
- (php instelling) memory_limit: de maximale hoeveelheid geheugen die een script zich mag toe-eigenen
- als het uploaden of vervolgens afhandelen van de upload (in geval van afbeeldingen: rescaling / thunbnailing etc.) erg lang duurt dan kan er een timeout in het script optreden, je zou dan kunnen denken aan het aanpassen van de tijdslimiet (set_time_limit) maar dit is de tijd die het script echt zelf bezig is, het uploaden van het bestand wordt volgens mij niet tot deze tijd gerekend, tenzij je op een windows-platform werk; anyway, dit laatste hoef je niet aan te passen totdat je echt tegen timeouts begint aan te lopen

Je zou in je verwerk-stap van je formulier ook eens $_POST en $_FILES kunnen dumpen naar je scherm, dit biedt vaak goede inzage in wat er werkelijk gebeurt.

De eerste drie PHP-instellingen zijn meestal de boosdoeners, deze moeten enigszins in harmonie zijn met wat je probeert te uploaden.
Offline arthurheijm - 07/11/2013 17:01
Avatar van arthurheijm Lid Ik heb het nagevraagd bij mijn provider, de opload limiet is ingesteld op 16 m.
Voor de rest moest ik het zelf maar uitzoeken.
Offline UpLink - 07/11/2013 20:23
Avatar van UpLink ... even de PHP-info nakijken he...

  1. <?php phpinfo(); ?>


Als ik mij niet vergis staat het daar wel ergens in.
Offline arthurheijm - 08/11/2013 12:54 (laatste wijziging 08/11/2013 14:05)
Avatar van arthurheijm Lid Ik heb het bovenste in de site geplaatst.
Klik hierom te kijken.

Ik heb hier geen verstand van.
Dus misschien kan je mij vertellen, hoe ik het moet doen.
Offline Thomas - 08/11/2013 15:27
Avatar van Thomas Moderator Hoe groot zijn de bestanden die je probeert te uploaden? Als deze nabij of groter dan 16 MB zijn gaat het sowieso niet werken; dat is de limiet die je host je heeft opgelegd. Tenzij jij deze kunt overschrijven.

Daarnaast zie ik dat Suhosin wordt gebruikt. Dit kan een mogelijke oorzaak zijn. Je zou je host kunnen vragen om deze tijdelijk in simulation mode te laten draaien, om zo in ieder geval te bepalen of Suhosin roet in het eten gooit:

Citaat:
If you fear that Suhosin breaks your application, you can activate Suhosin’s simulation mode with this flag. When Suhosin runs in simulation mode, violations are logged as usual, but nothing is blocked or removed from the request. (Transparent Encryptions are NOT deactivated in simulation mode.)


Daarnaast: bekijk je error logs, als Suhosin moeilijk doet over je file-uploads, dan zou je dat hier terug moeten vinden...

Als dit allemaal te technisch is / je dit niet zelf kunt oplossen (omdat je simpelweg niet bij deze informatie kunt komen) stel ik voor dat je contact opneemt met je host (provider). Maak daar je wensen kenbaar (wat wil je doen), en geef aan wat er mis gaat. Je zou daarbij kunnen aangeven dat Suhosin je mogelijk parten speelt als potentiele oplos-richting en bovenstaande voorstel doen, bij wijze van test.
Bedankt door: arthurheijm
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s