[php]Probleem met uploaden bestand naar server

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
Ik heb een script dat een bestand moet uploaden op een server waar apache/php is geinstalleerd.
als ik dit lokaal test werkt alles goed.
als ik dit script op de server zet krijg ik allerlei vreemde fouten.
ten eerste kan ik geen variabelen meegeven met method=post(<input type=text)
ten tweede wordt het bestand niet goed opgeslagen.
de naam is wel goed, maar de bestandgrootte is maar 7,82 kb?
wat kan er fout zijn?
form.php:
code:
1
2
3
4
5
6
<html>
<body>
<form action=upload.php method=post enctype="multipart/form-data">
<input type=file name=file>
</form>
</body></html>
upload.php
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
$file= $HTTP_POST_FILES['file'];
if (($file['error'] != 0) or ($file['size'] < 1) )
    {echo "bestand niet geselecteerd<pre>";
    print_r($HTTP_POST_FILES);
    print_r($_POST);
    print_r($HTTP_GET_VARS);
    exit;
    }
else
{
    //OPSLAAN BESTAND
    move_uploaded_file($file['tmp_name'],  "c:/temp/".$HTTP_POST_FILES['file']['name']);
        echo "VOLTOOID met opslaan";
    exit;
}

?>

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

Verwijderd

kan je ook de fouten melden?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:29

crisp

Devver

Pixelated

als register_globals uit staat moet je $_FILES gebruiken

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
toch vreemd. register_globals staat lokaal uit en daar werkt het wel
geen foutmeldingen dat is het vreemde
bestand is geupload met een grootte van 7,83 kb

[ Voor 41% gewijzigd door sturkel op 09-01-2004 16:11 ]

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

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

drm

f0pc0dert

crisp:
als register_globals uit staat moet je $_FILES gebruiken
Nee hoor.
$HTTP_POST_FILES contains the same information, but is not an autoglobal.


Check eens of het pad waarnaar je wilt moven wel bestaat en je ernaar kunt schrijven. Verder kan ik me voorstellen dat een temp directory op 'C' eens in de zoveel tijd opgeruimd wordt, maar daar zou een windowskenner wat meer over moeten vertellen.

(vind het sowieso niet een erg logische of handige plaats om bestanden op te slaan, maar goed)

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


Acties:
  • 0 Henk 'm!

  • vinnux
  • Registratie: Maart 2001
  • Niet online
Er zijn een aantal reden te noemen waardoor er fouten kunnen onstaan:
- Post formulier
in de <form> tag dient te staan enctype="multipart/form-data".
Hiermee geef je mee aan dat je formulier een bestand bevat en andere variabele.
- Onvoeldoende rechten
Het kan zijn dat php verkeerd is ingesteld om bestanden te accepteren. Wanneer b.v. save mode is geactiveerd is het al niet meer mogelijk om bestanden te verzenden. Of dat er een open basedir restrictie actief is en het bestand in een vekeerde directory terecht komt

Geef de foutmedling en we kunnen verder.

[ Voor 8% gewijzigd door vinnux op 09-01-2004 16:28 ]


Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
drm schreef op 09 januari 2004 @ 16:15:
[...]
Nee hoor.
[...]


Check eens of het pad waarnaar je wilt moven wel bestaat en je ernaar kunt schrijven. Verder kan ik me voorstellen dat een temp directory op 'C' eens in de zoveel tijd opgeruimd wordt, maar daar zou een windowskenner wat meer over moeten vertellen.

(vind het sowieso niet een erg logische of handige plaats om bestanden op te slaan, maar goed)
het bestand bestaat, en de dir c:/temp is een gedeelde map met schrijfrechten(anders zou er ook geen bestand in kunnen staan van enkele kb's)
vgouw schreef op 09 januari 2004 @ 16:27:
Er zijn een aantal reden te noemen waardoor er fouten kunnen onstaan:
- Post formulier
in de <form> tag dient te staan enctype="multipart/form-data".
Hiermee geef je mee aan dat je formulier een bestand bevat en andere variabele.
- Onvoeldoende rechten
Het kan zijn dat php verkeerd is ingesteld om bestanden te accepteren. Wanneer b.v. save mode is geactiveerd is het al niet meer mogelijk om bestanden te verzenden. Of dat er een open basedir restrictie actief is en het bestand in een vekeerde directory terecht komt

Geef de foutmedling en we kunnen verder.
multipart/form-data staat er ook in
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off

vooralsnog geen foutmeldingen

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
Is het handig een bepaald stuk van php.ini hier neer te zetten?
edit:

ik kan pas vanaf maandag weer op deze pc terecht, dus file info kan ik niet meer geven

[ Voor 46% gewijzigd door sturkel op 09-01-2004 17:27 ]

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

Verwijderd

euhm....uploaden op een server naar c:/temp/ werkt meestal niet zo goed....of zeg ik nu iets doms?

Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
ook al zet ik het in een andere map, dan nog werkt het niet, nog 7,8x kb

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

Waar staat upload_max_filesize (zie php.ini) op ingesteld?

There's no place like 127.0.0.1


Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
code:
1
2
3
4
5
6
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
file_uploads = On
upload_tmp_dir = c:\php_upload\
upload_max_filesize = 8M

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
Dit zijn de server gegevens:
Server Version: Oracle HTTP Server Powered by Apache/1.3.22 (Win32) mod_plsql/3.0.9.8.3b mod_ssl/2.8.5 OpenSSL/0.9.6b mod_fastcgi/2.2.12 mod_oprocmgr/1.0 mod_perl/1.25
php version: 4.3.2

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
Is er een manier om het bit voor bit weg te schrijven?
Ik heb wel wat geprobeerd met fwrite, maar dat helpt ook niet, omdat het bestand dat geplaatst wordt maar 7,8x kb is.
Is er nog iemand met een oplossing?
edit:

ook een andere versie van php maakt geen verschil

[ Voor 14% gewijzigd door sturkel op 12-01-2004 12:25 ]

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

Verwijderd

wat geeft print_r($HTTP_POST_FILES); voor waarde bij de size?
Is deze ook 7.8 Kb?

Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
deze is rondom de 8020, dit zal dan wel bytes zijn(8020/1024) is ongeveer het aantal kb dat de bestanden steeds zijn.
toch vreemd want errors zijn er niet(althans, t is altijd 0)

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

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

drm

f0pc0dert

Ik begrijp er geen hout van...

Je upload dus een bestand wat groter is dan ~7 kb ?

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


Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
Ik zal het nogmaals proberen uit te leggen:
via het (php) bestand form.php laat ik de gebruiker een bestand selecteren.
de action van dat form is upload.php
in upload.php moet het bestand terecht komen in een bepaalde map.
dit werkt wel, maar het bestand dat opgeslagen wordt op de server is niet gelijk aan de grootte van het orginele bestand(dat door de gebruiker is geselecteerd)
zoals ik hierboven al heb beschreven krijg ik het niet werkend ook niet met een andere versie van php(huidige versie 4.3.2)
is er een manier om het bestand bit voor bit te versturen via php(dus geen ftp connectie of ander file protocol)?
of waar zou de fout in kunnen zitten. een of andere restrictie?

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Acties:
  • 0 Henk 'm!

Verwijderd

Wat is het nou? 7,8 Kb of 7,8 KB (wat redelijk overeen komt met 8020 bytes)

Is het geuploade bestand corrupt of geeft dit bestand problemen als je het aanroept?
Als je het gewoon zonder problemen kunt openen en je ziet wat je moet zien, dan is er toch geen probleem?

Ben even de weg kwijt met het omschreven probleem.

Acties:
  • 0 Henk 'm!

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 19-09 12:28
het is 7,8x KB bij een bestand dat grote is dan deze waarde.
een bestand dat kleiner is dan deze grootte wordt wel goed opgeslagen.
elk ander bestand dat groter is dan deze grootte wordt afgekapt op 7,8xKB

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]

Pagina: 1