[PHP] File upload

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
Ik probeer een php te maken waarmee mensen een plaatje kunnen uploaden.
als ik een rij echo's doe:
code:
1
2
3
4
echo $_HTTP_POST_FILES['userfile']['name']."<br>";
echo $_HTTP_POST_FILES['userfile']['size']."<br>";
echo $_HTTP_POST_FILES['userfile']['type']."<br>";
echo $_HTTP_POST_FILES['userfile']['tmp_name']."<br>";

krijg ik:
blaat.jpg
0
//lege regel
//lege regel

Ik draai php als cgi in IIS.
Kan ik dan geen upload maken, of zit er iets fout in mijn php.ini?

Acties:
  • 0 Henk 'm!

Verwijderd

Heb je in je form element wel enctype="multipart/form-data" opgegeven? :)

Acties:
  • 0 Henk 'm!

Verwijderd

heb je je php.ini wel ingesteld?

hier dus:

code:
1
2
3
4
5
6
7
8
9
; 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 = <tempdir>  ; temporary directory for HTTP uploaded files (will use system default if not specified)

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

[ Voor 86% gewijzigd door Verwijderd op 24-05-2003 16:36 ]


Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
Ja, ik heb gewoon het standaard form uit php manual de gepakt, dus ik weet vrij zeker dat het daar niet aan ligt

[ Voor 6% gewijzigd door Rigi op 25-05-2003 16:22 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Rigi:
Ja, ik heb gewoon het standaard form uit de gepakt, dus ik weet vrij zeker dat het daar niet aan ligt
Ik niet voor ik je code gezien heb. Mijn glazen bol werkt even niet mee, helaas ...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
nja, ik neem aan dat die bol nog wel ffies stuk blijft dus zie hier mijn code B)
code:
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
<HTML>
    <head>
        <title> :: Upload Band Picture :: </title><?php include("connect.php"); ?>
        <LINK rel=stylesheet type=text/css href="stylesheet.css">
    </head>
    <body class=main>
        <?php
        if(!isset($HTTP_POST_FILES['userfile']['name']))
        {
echo    "<FORM ENCTYPE=\"multipart/form-data\" ACTION=\"pictureUL.php\" METHOD=POST>
            <INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1000\">
            Send this file: <INPUT NAME=\"userfile\" TYPE=\"file\">
            <INPUT TYPE=\"submit\" VALUE=\"Stuur Bestand\">
        </FORM>";
        }
        else
        {
            echo $HTTP_POST_FILES['userfile']['name']."<br>";
            echo $HTTP_POST_FILES['userfile']['type']."<br>";
            echo $HTTP_POST_FILES['userfile']['size']."<br>";
            echo $HTTP_POST_FILES['userfile']['tmp_name']."<br>";
            if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) 
            {
                copy($HTTP_POST_FILES['userfile']['tmp_name'], "/images/users/");
            }
            else 
            {
                echo "Mogelijke file-upload aanval: bestandsnaam ".$HTTP_POST_FILES['userfile']['tmp_name'];
            }
        }
        ?>
    </body>
</html>


en voor degene die het interesseert, het file upload deel uit php.ini:
code:
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 = C:\Temp  ; temporary directory for HTTP uploaded files (will use system default if not specified)

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

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

doe eens een
PHP:
1
echo $HTTP_POST_FILES['userfile']['error']."<br>";


;)

edit:
ik copy&paste zijn code ;) maar zag die fout niet :P

[ Voor 70% gewijzigd door Erkens op 25-05-2003 17:26 ]


Acties:
  • 0 Henk 'm!

Verwijderd

de var klopt niet
geuploade bestanden zijn aan te roepen met de array
$HTTP_POST_FILES['userfile'] of $_FILES['userfile'] afhankelijk van de versie.
zie ook http://www.php.net/manual/en/features.file-upload.php

Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
Verwijderd schreef op 25 mei 2003 @ 16:57:
de var klopt niet
geuploade bestanden zijn aan te roepen met de array
$HTTP_POST_FILES['userfile'] of $_FILES['userfile'] afhankelijk van de versie.
zie ook http://www.php.net/manual/en/features.file-upload.php
Ik gebruik toch $HTTP_POST_FILES??
+ ik krijg wel 'iets' uit $HTTP_POST_FILES['userfile']['name']...

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Rigi schreef op 26 May 2003 @ 20:54:
[...]


Ik gebruik toch $HTTP_POST_FILES??
+ ik krijg wel 'iets' uit $HTTP_POST_FILES['userfile']['name']...
kijk naar je code in de topicstart, daar staat (per ongeluk) een _ teveel ;)
maar wat krijg je uit $HTTP_POST_FILES['userfile']['error'], lijkt me nuttig om te weten, aan de hand daarvan kan je zien of de upload gelukt is of niet, en tevens waarom niet ;)

zie de php manual voor meer info :)

Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
$HTTP_POST_FILE['userfile']['error'] geeft 2..

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Rigi schreef op 26 May 2003 @ 22:35:
$HTTP_POST_FILE['userfile']['error'] geeft 2..
UPLOAD_ERR_OK
Value: 0; There is no error, the file uploaded with success.

UPLOAD_ERR_INI_SIZE
Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.

UPLOAD_ERR_FORM_SIZE
Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form.

UPLOAD_ERR_PARTIAL
Value: 3; The uploaded file was only partially uploaded.

UPLOAD_ERR_NO_FILE
Value: 4; No file was uploaded.
;)

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

[ Voor 8% gewijzigd door Erkens op 26-05-2003 22:39 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Wat natuurlijk nogal gauw gebeurt als de MAX_FILE_SIZE maar 1000 bytes is...

Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
tja, een nulletje meer of minder hè

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Rigi schreef op 26 mei 2003 @ 22:52:
tja, een nulletje meer of minder hè
maar als je gewoon die error checked (wat je eik altijd moet doen) dan kwam je daar eerder achter en was zelfs dit topic niet nodig geweest aangezien dat van die errorcode's prima uitgelegt staat in de manual ;)

Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
ja, maar die ['error'] stond niet in het deel van de manual dat ik gelezen heb :S
had ik het geweten had ik het ook wel gedaan, nja thanx annyways

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Rigi schreef op 26 May 2003 @ 23:00:
ja, maar die ['error'] stond niet in het deel van de manual dat ik gelezen heb :S
had ik het geweten had ik het ook wel gedaan, nja thanx annyways
dan vraag ik me af welke manual je gelezen hebt :X

Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
nou als je de download pakt en je neemt index.html dan staat daar uploading files (oid) dat heb ik bekeken

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Rigi schreef op 28 May 2003 @ 14:31:
nou als je de download pakt en je neemt index.html dan staat daar uploading files (oid) dat heb ik bekeken
:?

http://nl3.php.net/manual/nl/features.file-upload.php
De inhoud van de $_FILES array van het voorgaande voorbeeld is als volgt: (dit gaat uit van userfile, zoals gebruikt in het voorgaande voorbeeld)

$_FILES['userfile']['name']
De (gegeven) naam van de geuploade file.

$_FILES['userfile']['type']
De mime-type van het bestand, zoals gegeven door de browser. (Het kan voorkomen dat geen mime-type wordt gegeven, of een verkeerde wordt gegeven) The mime type of the file, if the browser provided this Een voorbeeld hiervan zou kunnen zijn "image/gif".

$_FILES['userfile']['size']
De bestandsgrootte in bytes.

$_FILES['userfile']['tmp_name']
De tijdelijke naam van het bestand, dit is ook de plaats waar het bestand tijdelijk is opgeslagen totdat het script er iets mee doet. Dit bestand wordt weggehaald zodra het script eidigt.

$_FILES['userfile']['error']
De error code ge-associeerd met deze bestands-upload. ['error'] bestaat pas sinds PHP 4.2.0


Opmerking: In PHP versies voor 4.1.0 heette deze array nog $HTTP_POST_FILES, ook was het geen autoglobal zoals $_FILES is. PHP 3 maakt geen gebruik van $HTTP_POST_FILES, noch van $_FILES.
Pagina: 1