Toon posts:

[php] file uploaden

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

Verwijderd

Topicstarter
ik snap niet wat hier niet goed aan is.
ik heb een formulier dat 'bestand' post
vervolgens wil ik de inhoud van dat bestand (txt) echo-en
code:
1
2
3
4
5
6
7
8
<?
global $_FILES; 
$post = $HTTP_POST_FILES['bestand']['name'];
$bestand = fopen($post,'r');
echo "Inhoud van <b>$post</b>:<br>";
$data = fgets($bestand, 4096); 
echo "$data"; 
?>

[ Voor 17% gewijzigd door Verwijderd op 31-01-2006 13:28 ]


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Omdat het ge-uploade bestand in een tijdelijke dir terecht komt en niet in dezelfde dir als je script?

Sowieso geeft je script *ERGENS* een error, die je ons niet geeft. Als je hem niet ziet, dan mag je de PHP-manual-pagina over error-handling en error-reporting in het specifiek wel eens doornemen.

[ Voor 64% gewijzigd door Osiris op 31-01-2006 13:13 ]


Verwijderd

Topicstarter
dit is de error
code:
1
2
3
4
5
6
Warning: fopen(): Unable to access Test_AW33_8.txt in E:\wwwroot\scripts\AZR-lezen.php on line 77

Warning: fopen(Test_AW33_8.txt): failed to open stream: No such file or directory in E:\wwwroot\scripts\AZR-lezen.php on line 77
Inhoud van Test_AW33_8.txt:

Warning: fgets(): supplied argument is not a valid stream resource in E:\wwwroot\scripts\AZR-lezen.php on line 82

het kan dus dat ie idd niet in mijn map staat,
maar het moet toch mogelijk zijn om files in de temp map aan te spreken...

[ Voor 6% gewijzigd door Verwijderd op 31-01-2006 13:28 ]


Verwijderd

$_FILES en $_FILES['bestand']['tmp_name']

zie ook: http://nl2.php.net/features.file-upload

[ Voor 43% gewijzigd door Verwijderd op 31-01-2006 13:17 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-04 15:11

Bosmonster

*zucht*

PHP:
1
global $_FILES

slaat nergens op, $_FILES is een superglobal (en dus altijd aanspreekbaar). Bovendien gebruik je het global keyword alleen in functies/methods om globale variabelen binnen de scope van de functie te trekken.

PHP:
1
$post = $HTTP_POST_FILES['bestand']['name'];

Vervolgens stap je af van de juiste variabele ($_FILES) naar het oude $HTTP_POST_FILES. Waarom?
Daarbij is de 'name' alleen de naam van het bestand zoals die geupload werd. 'tmp_name' is de variabele die je wilt hebben voor de locatie van het geuploade bestand in de tmp-map.

PHP:
1
2
3
4
$bestand = fopen($post,'r'); 
echo "Inhoud van <b>$post</b>:<br>"; 
$data = fgets($bestand, 4096); 
echo "$data";


Dit is allemaal niet nodig, kijk eens naar de functie move_uploaded_file
Die zorgt voor een veilige afhandeling van het verplaatsen van je geuploade bestand naar de locatie waar je hem hebben wilt.

Als je hem alleen wilt lezen kan dat natuurlijk ook. Gebruik dan ook gewoon het pad van 'tmp_name'.

Om te zien wat je nu eigenlijk van een upload binnen krijgt, moet je het volgende eens proberen. Het geeft een hoop duidelijkheid :)

PHP:
1
print_r ($_FILES);


En wat Juggernaut al zei: op http://nl2.php.net/features.file-upload staat dit en meer uitgelegd over PHP file uploads.

[ Voor 54% gewijzigd door Bosmonster op 31-01-2006 13:28 ]


Verwijderd

Topicstarter
okay, ik ga met de tips aan de slag, bedankt allemaal

  • nemesis_
  • Registratie: Mei 2003
  • Laatst online: 15-05-2024

nemesis_

I'm your enemy!

Wat staat er in de HTML van je formulier? En dan vooral in de form-tag?
Staat er een enctype (enctype="multipart/form-data") in?

Ook een cookie?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-04 17:49

NMe

Quia Ego Sic Dico.

Kom op, dit staat letterlijk in de manual, inclusief voorbeelden. :X Met bovenstaande info moet je er zelf wel uit kunnen komen.

Daarnaast mis ik een berg eigen inzet, zoals in heel veel van je eigen topics. Je geeft in de eerste instantie zelfs geen foutmelding, je zegt gewoon "het werkt niet", en daar moeten we het mee 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.

Pagina: 1

Dit topic is gesloten.