[PHP] upload script

Pagina: 1
Acties:
  • 63 views sinds 30-01-2008

  • Inner354
  • Registratie: Oktober 2003
  • Niet online
Goede middag mensen,

Ik heb een probleempje met een upload script. Het script zelf heb ik gedownload van hotscripts.com en de bedoeling is met het script mp3's te uploaden naar een map op de server...

Van de mooiste scripts met file-extention beveiliging tot de simpelste... ze willen het niet doen. Uploaden van een klein bestand gaat best.. en .txt of een .php... Alleen op het moment dat ik een .mp3 wil uploaden gaat het de mist in... Als je op "upload" druk begint hij te laden en schiet daarna gelijk terug naar de begin pagina (html form met de upload enzo)...

Ik heb de max file size goed afgesteld, maar hij wil het gewoon niet doen... als ik een .txt even verander naar .mp3 wil die wel uploaden :?

Wat is hier aan de hand? Ligt het aan het script of zijn het serverinstellingen ofzo?

p.s. Hoe zet je je php code mooi neer op het forum dan post ik gelijk ff de code :9

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Het ligt misschien idd aan "serverinstellingen", zorg dat je schrijfrechten heb in de directory waar die bestanden terechtkomen.

Met de [php]-tag kun je code invoegen :)

  • Inner354
  • Registratie: Oktober 2003
  • Niet online
Het probleem is dat de schrijf rechten wel goed zitten... ik kan namelijk wel .php/.txt bestanden uploaden.

  • Inner354
  • Registratie: Oktober 2003
  • Niet online
Dit is de PHP code..

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<html> 
<head> 
<title>File Uploader</title> 
</head> 
<body bgcolor="silver"> 
<?php 
ini_set("display_errors", 1);
error_reporting(E_ALL & ~E_NOTICE);
$file = $_FILES['file'];
$file_name = $_FILES['file']['name'];
$file_size = $_FILES['file']['size'];
$file_temp = $_FILES['file']['tmp_name'];
$bad_files = "0";
$max_size = "20971520"; // Maximum File Size (In Bytes)
$extensions = ".gif$|.jpg$|.mp3|.php$"; // Allowed File Extensions
$file_name = stripslashes ($file_name); 
if ($file) { 
if ($file_size > $bad_files) {
if ($file_size <= $max_size) { 
if (ereg($extensions , $file_name)) { 
print "File name: $file_name<p>\n"; 
print "File size: $file_size<p>\n"; 
if (move_uploaded_file($file_temp, "files_uploaded/$file_name")) { 
print "<font color=\"blue\" font size=\"3\">Your file was successfully uploaded !</font><p>\n"; 
}else{ 
print "<font color=\"red\" font size=\"3\">Your File could not be uploaded!</font></P>\n"; 
} 
}else{ 
print "<font color=\"red\" font size=\"3\">Bad File Extension (GIF & JPG) Only!</font><p>\n"; 
} 
}else{ 
print "<font color=\"red\" font size=\"3\">The File Size is Too Big!</font><p>\n"; 
}
}else{
print "<font color=\"red\" font size=\"3\">File Must Be Greater Than 0 Byte's</font><p>\n";
}
} 
print "Upload a File to the server: 
<br><form action='index.php' method='post' enctype='multipart/form-data'> 
<input type='file' name='file'><br><input type='submit' value='Upload'>
<br><hr>Files Allowed: GIF, JPG and MP3<br> Max File Size: 20 MB</form>";
?> 
</body> 
</html> 

[ Voor 25% gewijzigd door Inner354 op 22-05-2004 12:23 ]


Verwijderd

het kan aan je hoster liggen, dat ie mischien niet wil dat je mp3's upload of dat er in je php config file stat dat de maximale upload niet groter mag zijn dan 2mb?

  • Inner354
  • Registratie: Oktober 2003
  • Niet online
Van me hoster mag het best... ben ik namelijk ;) Staat hier thuis een apache server te draaien die ik zelf heb opgezet...

Kan het aan apache zelf liggen? Dat er standaard een instelling aanstaat dat je niet groter dan 2mb (bijv.) mag uploaden? Lijkt me niet toch?

  • Marzman
  • Registratie: December 2001
  • Niet online

Marzman

They'll never get caught.

Standaardgrootte hiervoor in php.ini staat dacht ik inderdaad op 2 MB. Dat gaat dus niet werken, tenzij je host bereid is deze grootte aan te passen.

[edit]
Dan ff je php.ini aanpassen host ;)

[ Voor 14% gewijzigd door Marzman op 22-05-2004 12:46 ]

☻/ Please consider the environment before printing this signature
/▌
/ \ <-- This is bob. copy and paste him and he will soon take over the world.


  • IceQb
  • Registratie: Augustus 2002
  • Laatst online: 17-05 01:14
Probeer eens een mp3 van onder de 100kb, kan je zien of het aan de groote of de extensie ligt.

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Marzman schreef op 22 mei 2004 @ 12:45:
Standaardgrootte hiervoor in php.ini staat dacht ik inderdaad op 2 MB. Dat gaat dus niet werken, tenzij je host bereid is deze grootte aan te passen.

[edit]
Dan ff je php.ini aanpassen host ;)
D'r zit toch ook nog een max in Apache?

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
je kan ook bovenaan je php file zetten dat ie geen max moet hebben

ah hierzo:
code:
1
<!-- "MAX_FILE_SIZE" determines the biggest size an uploaded file can occupy -->


komt uit een scriptje wat hier draait:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<HTML>
<BODY bgcolor="#929292">
<!-- "MAX_FILE_SIZE" determines the biggest size an uploaded file can occupy -->

<CENTER>
  <FORM enctype="multipart/form-data" action="<?PHP echo $PHP_SELF ?>" method="post">
    <INPUT type="hidden" name="MAX_FILE_SIZE" value="52428800">
    Send this file:
    <INPUT type="file" name="userfile" size=40>
    <INPUT type="submit" name="submit" value="Send File">
  </FORM>
<CENTER>
</BODY>
<?php
$dir="uploaded/";
if (isset($submit)){
  copy($userfile,$dir.$userfile_name);
  if (!is_uploaded_file ($userfile)){
    echo "<b>$userfile_name</b> couldn't be copied!";
  } else {
    echo "<B>$userfile_name</B> uploaded succesfully!<BR>";
  }
}
?>
</HTML>


trouwens kan je ook een html header versturen voor de timeout (voor grote bestanden)

[ Voor 152% gewijzigd door BasieP op 22-05-2004 13:06 ]

This message was sent on 100% recyclable electrons.


  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

BasieP: dat is clientside. ;)

  • Inner354
  • Registratie: Oktober 2003
  • Niet online
Okeej de php.ini veranderd dus

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "D:\EasyPHP 1.7\tmp\"

; Maximum allowed size for uploaded files.
upload_max_filesize = 20M


Alleen nog steeds geen effect... er moet nog ergens anders een max zitten ingebouwd ?

Ik heb dus al is een .txt'je naar .mp3 vernoemd en die kan die gewoon uploaden dus het ligt echt aan de maximale upload grote..

  • Tarzan
  • Registratie: November 2003
  • Laatst online: 23-05 10:23
Kijk ook nog even naar je post_max_size, je weet namelijk maar nooit :)

code:
1
2
; Maximum size of POST data that PHP will accept.
post_max_size = 8M

..:: ::..


  • Inner354
  • Registratie: Oktober 2003
  • Niet online
post_max_size is hem ook niet.... ook op 20m gezet maar het mp3'tje van 8 mb wil die dus niet uploaden...

Zoals er eerder werdt gezegd , zou er ook een max zitten in apache ?

Verwijderd

print_r de $_FILES['file'] Array eens en kijk of je een Error code hebt.

http://www.php.net/manual/en/features.file-upload.errors.php

Op die pagina kan je zien welke code wat betekent.

Ik kan je ook aanraden om zelf eens php te leren, want ik heb het gevoel dat het moet werken, zonder dat je zelf iets wil doen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<html> 
<head> 
<title>File Uploader</title> 
</head> 
<body bgcolor="silver"> 
<?php 
ini_set("display_errors", 1); 
error_reporting(E_ALL & ~E_NOTICE); 
$file = $_FILES['file']; 
$file_name = $_FILES['file']['name']; 
$file_size = $_FILES['file']['size']; 
$file_temp = $_FILES['file']['tmp_name'];
$bad_files = "0"; 

print_r($_FILES['file']);

$max_size = "20971520"; // Maximum File Size (In Bytes) 
$extensions = ".gif$|.jpg$|.mp3|.php$"; // Allowed File Extensions 
$file_name = stripslashes ($file_name); 
if ($file) { 
  if ($file_size > $bad_files) { 
    if ($file_size <= $max_size) { 
      if (ereg($extensions , $file_name)) { 
        print "File name: $file_name<p>\n"; 
        print "File size: $file_size<p>\n"; 
        if (move_uploaded_file($file_temp, "files_uploaded/$file_name")) { 
          print "<font color=\"blue\" font size=\"3\">Your file was successfully uploaded !</font><p>\n"; 
        }else{ 
          print "<font color=\"red\" font size=\"3\">Your File could not be uploaded!</font></P>\n"; 
        } 
      }else{ 
        print "<font color=\"red\" font size=\"3\">Bad File Extension (GIF & JPG) Only!</font><p>\n"; 
      } 
    }else{ 
      print "<font color=\"red\" font size=\"3\">The File Size is Too Big!</font><p>\n"; 
    } 
  }else{ 
    print "<font color=\"red\" font size=\"3\">File Must Be Greater Than 0 Byte's</font><p>\n"; 
  } 
} 
print "Upload a File to the server: 
<br><form action='upload.php' method='post' enctype='multipart/form-data'> 
<input type='file' name='file'><br><input type='submit' value='Upload'> 
<br><hr>Files Allowed: GIF, JPG and MP3<br> Max File Size: 20 MB</form>"; 
?> 
</body> 
</html>

[ Voor 94% gewijzigd door Verwijderd op 22-05-2004 14:01 ]


  • Inner354
  • Registratie: Oktober 2003
  • Niet online
Ik ben nu ruim een jaar bezig met php, omdat ik het op school heb... ik wil het best leren en ben er hard mee bezig alleen ben ik bezig met een project waar is niet al teveel tijd meer voor heb :9

Dus het wiel opnieuw uitvinden in de zin van een eigen upload script schrijven heb ik geen tijd voor... en dat neemt trouwens nog me probleem niet weg...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:52

gorgi_19

Kruimeltjes zijn weer op :9

Voor je probleem kunnen 2 mogelijke oorzaken zijn:
1. Het script is buggie / niet goed. Je geeft aan dat je het script niet zelf gemaakt hebt. In Programming & Webscripting geven we geen support op scripts van derden. In dit geval kan je beter de maker mailen of een ander script nemen; we gaan hier niet debuggen en zeker niet een script van iemand anders.

2. Een probleem met de instellingen van Apache / PHP. Dit probleem hoort in Software Algemeen thuis en niet in Programming & Webscripting

Aangezien ik niet kan zien omdat er te weinig info is of de fout ligt bij het eerste of het tweede, gaat deze dicht en verplaats ik hem niet. :)
Je kan zelf gaan experimenteren met PHP en zelf wat maken of een ander script nemen. Mocht het probleem dan nog blijven bestaan, dan zal het probleem waarschijnlijk bij de configuratie liggen en kan je een duidelijk topic openen in Software Algemeen.

Succes met je script :)

[ Voor 6% gewijzigd door gorgi_19 op 22-05-2004 14:05 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.