Upload onder php werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb hier een PHP pagina met een Upload functie er in, maar helaas dit werkt niet. Ik heb al aandachtig de topics hier over gelezen en natuurlijk niet te vergeten de PHP handleiding.

Maar helaas ik kom er nog niet uit. Het gaat om een "locaal" server die bijna naast me staat.
er staat op:
- windows 2003 met IIS6
- PHP 5.0.4
- Mysql 4.1.11

Probleem is dus de PHP script voor het uploaden.
PHP:
1
2
3
4
5
6
7
8
9
<?php 
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
        copy($_FILES['userfile']['tmp_name'], "/upload/ontvangen");
    } else {
        echo "Mogelijke aanval gespot: " . $_FILES['userfile']['name'];
    }
    /* ...of... */
    move_uploaded_file($_FILES['userfile']['tmp_name'], "/upload/ontvangen");
?> 


Het forum script is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<head>
<title>Files Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
 <input type="hidden" name="MAX_FILE_SIZE" value="1000">
 Upload dit bestand: <input name="userfile" type="file">
 <input type="submit" value="Upload!">
 </form>

</body>
</html>


de fout melding die ik steeds krijg is:
code:
1
Mogelijke aanval gespot: ApitoDourado.jpg


Het maakt niet uit hoe groot of hoe klein de bestanden zijn krijg steeds het zelfde. Verder heb ik op de server voor alle users alle rechten in gesteld (dit puur voor de test als het werkt gaan de rechten er weer af)

Heb verschillende scrips geprobeerd maar niks werkte.

voor de mensen die nieuwsgierig zijn naar mijn 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 = E:\tmp ; temporary directory for HTTP uploaded files (will use system default if not specified)

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


Ik ben er nog niet zo lang met php bezig, maar ik hoop dat jullie me willen helpen

Acties:
  • 0 Henk 'm!

  • bigben04
  • Registratie: December 2001
  • Laatst online: 30-08 20:47
Probeer eens de inhoud van het $_FILES['userfile'] array te bekijken:
PHP:
1
2
3
<?php 
print_r($_FILES['userfile']);
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {

[ Voor 19% gewijzigd door bigben04 op 07-06-2005 21:03 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Voer dit eens uit boven het stukje script dat je hierboven postte:
PHP:
1
2
3
echo '<pre>';
print_r($_FILES);
echo '</pre>';

Verder: move_uploaded_file heeft twee filenames nodig als parameters, terwijl jij als tweede parameter een map doorgeeft. Dat zal hier de fout niet zijn, maar dat gaat je volgende fout worden. ;)
Waarom doe je trouwens eerst een copy en daarna nog eens move_uploaded_file? :o

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bigben04 schreef op dinsdag 07 juni 2005 @ 21:02:
Probeer eens de inhoud van het $_FILES['userfile'] array te bekijken:
PHP:
1
2
3
<?php 
print_r($_FILES['userfile']);
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
krijg nu te zien:
code:
1
Array ( [name] => ApitoDourado.jpg [type] => [tmp_name] => [error] => 2 [size] => 0 ) Mogelijke aanval gespot: ApitoDourado.jpg
-NMe- schreef op dinsdag 07 juni 2005 @ 21:03:
Voer dit eens uit boven het stukje script dat je hierboven postte:
PHP:
1
2
3
echo '<pre>';
print_r($_FILES);
echo '</pre>';

Verder: move_uploaded_file heeft twee filenames nodig als parameters, terwijl jij als tweede parameter een map doorgeeft. Dat zal hier de fout niet zijn, maar dat gaat je volgende fout worden. ;)
Waarom doe je trouwens eerst een copy en daarna nog eens move_uploaded_file? :o
krijg ik:

Array
(
[userfile] => Array
(
[name] => ApitoDourado.jpg
[type] =>
[tmp_name] =>
[error] => 2
[size] => 0
)

)

Mogelijke aanval gespot: ApitoDourado.jpg

ik had ergens gelezen (php handleiding) dat als PHP op safe mode draait dat je dan move_uploaded_file moest doen om het toch te laten werken dit is ook de reden dat ik ze er allebij in heb om te kijken of het werk (of niet)

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Error #2 betekent volgens PHP het volgende:
Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form
Kortom, je bestand is waarschijnlijk groter dan de 1000 bytes die je hebt gespecificeerd in
code:
1
<input type="hidden" name="MAX_FILE_SIZE" value="1000">

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
T-MOB schreef op dinsdag 07 juni 2005 @ 21:30:
Error #2 betekent volgens PHP het volgende:

[...]

Kortom, je bestand is waarschijnlijk groter dan de 1000 bytes die je hebt gespecificeerd in
code:
1
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
mm dat had ik zelf kunnen vinden in de handleiding.

Maar ik vind dit wel vreemd het bestand, in dit geval een plaatje is 31Kb
ik heb MAX_FILE_SIZE" value="1000" nog een 0 bij geplaatst dus nu "10000" en blijft met error 2 komen ?? blijft een raar geval

Acties:
  • 0 Henk 'm!

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 24-05 15:42
31 kb = 31000 byte > 10000 byte 8)7

Nog een nulletje erbij dus.

[ Voor 35% gewijzigd door HyperioN op 07-06-2005 22:22 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
HyperioN. schreef op dinsdag 07 juni 2005 @ 22:21:
31 kb = 31000 byte > 10000 byte 8)7

Nog een nulletje erbij dus.
|:( dom dom kan niet meer tellen :+

Hij gaat nu verder en geeft geen error 2 meer maar het wil nog niet de mappen blijfen leeg en de file is niet te vinden op de server.

Array
(
[userfile] => Array
(
[name] => ApitoDourado.jpg
[type] => image/pjpeg
[tmp_name] => E:\tmp\php63.tmp
[error] => 0
[size] => 31220
)

)

er is nu een file gewoon los op "e:\" genaamd upload zonder extencie als ik die weg gooi en ik upload opnieuw dan staat ie er weer. maar verder geen foto of iets anders en de map "/upload/ontvangen" blijven leeg.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ook copy wil 2 filenames als parameter, en niet een file en een map. Heb je de documentatie überhaupt open gehad? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-NMe- schreef op dinsdag 07 juni 2005 @ 22:53:
Ook copy wil 2 filenames als parameter, en niet een file en een map. Heb je de documentatie überhaupt open gehad? :?
Ik heb hier een boek liggen genaamd "PHP zonder stress" en daar staat deze script in alleen fout dus. nu heb ik nog maals even in de handleiding van PHP gekeken onder de naam Copy en zag nu wat ik fout doe.

nu is de code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
echo '<pre>';
print_r($_FILES);
echo '</pre>';

    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
        copy($_FILES['userfile']['tmp_name'], "01.jpg");
    } else {
        echo "Mogelijke aanval gespot: " . $_FILES['userfile']['name'];
    }
    /* ...of... */
    move_uploaded_file($_FILES['userfile']['tmp_name'], "upload");
?> 


nu slaat hij het netjes onder de naam 01.jpg in de map upload.

maar het is nog steets niet wat ik wil. als ik nu een andere foto upload of bestand krijgt hij de naam 01.jpg en word de ouwde overschreven. Nu wil ik gewoon dat de naam zijn bestands naam houd zo als hij was. Dus heet hij "upload.exe" moet ie ook zo opgeslagen worden in map upload

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Kijk eens naar wat die print_r voor je afdrukt. Zie je ook [name] staan? Mag je drie keer raden wat je daarmee kan doen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-NMe- schreef op dinsdag 07 juni 2005 @ 23:08:
Kijk eens naar wat die print_r voor je afdrukt. Zie je ook [name] staan? Mag je drie keer raden wat je daarmee kan doen. ;)
na veel zoeken snap ik deze vraag je, het is gelukt _/-\o_

de code is nu:
PHP:
1
2
3
4
5
6
7
8
9
<?php

    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
        copy($_FILES['userfile']['tmp_name'], "ontvangen/". $_FILES['userfile']['name']);
    } else {
        echo "Mogelijke aanval gespot: " . $_FILES['userfile']['name'];
    }
    
?> 


_/-\o_ mensen heel erg bedankt werk nu helemaal naar behoren O+
Pagina: 1