[PHP] vanaf URL uploaden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja, dit onderwerp is vaker geweest, maar zelfs met phpfaq en search kom ik er nog niet uit. Ik kan ook nergens voorbeelden vinden van mensen die het eerder hebben gedaan. Vreemd, want ik kan me toch eigenlijk niet voorstellen dat ik de eerste ben die dit wil maken, maar goed;

Ik wil een upload maken die bestanden van de harde schijf én bestanden vanaf het internet kan uploaden. Ik heb echt vanalles geprobeerd, maar dit leek met nog het meest logische:
PHP:
1
2
3
4
5
6
7
8
9
10
<?PHP
$bestand = "http://www.google.nl/images/logo.gif";
$upload = fopen( $bestand, "r" );
$inhoud = fread( $upload,$bestand_size );
fclose ( $upload );

$opslaan = fopen( "upload//".$bestand_name, "wb" );
fwrite ( $opslaan, $inhoud, $bestand_size );
fclose ( $opslaan );
?>
Maar dat werkt dus voor geen meter, als ik hem bij lycos open gebeurd er niets, en als ik hem lokaal open krijg ik dit:
Warning: fopen("upload//", "wb") - Permission denied in c:\phpdev\www\upload.php on line 7

Warning: fwrite(): supplied argument is not a valid File-Handle resource in c:\phpdev\www\upload.php on line 8

Warning: fclose(): supplied argument is not a valid File-Handle resource in c:\phpdev\www\upload.php on line 9
Er zou dus iets fout gaan bij het fopen, geen toestemming.... Maar hoe krijg je dan "toestemming" tot een bestand op het internet??? Dat kan het probleem toch niet zijn?

De directory upload bestaat, het bestand logo.gif óók. Kan iemand mij wat verder in de goede richting helpen?

Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
ik denk eerder dat er moeite is met is met de upload directory dan met de file...

|>


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
$bestand_name is niet gedefinieerd, dat blijkt ook uit je foutmelding: fopen("upload//", "wb")

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Noot: als je $bestand_size niet definieert, krijg je een bestand van 0 bytes binnen.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

  • Mayco
  • Registratie: Augustus 2002
  • Laatst online: 13-08 08:00
ik gebruik:

code:
1
2
3
4
5
6
7
8
$s = fopen($remotefile, 'rb');
$d = fopen($localfile, 'wb'); 
while (!feof($s)) { 
  $contents = fread($s, 1024); 
  fwrite($d, $contents); 
} 
fclose($d);
fclose($s);

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dankjewel iedereen!! Het werkt perfect!

Acties:
  • 0 Henk 'm!

  • Frash
  • Registratie: Mei 2002
  • Laatst online: 13:00
code:
1
2
3
4
5
6
7
8
9
10
11
<?PHP 
$bestand = "http://www.google.nl/intl/nl_nl/images/logo.gif"; 
$bestand_name = "logo_google.gif";
$bestand_size = "1024";
$upload = fopen( $bestand, "r" ); 
$inhoud = fread( $upload, $bestand_size ); 
fclose ( $upload ); 
$opslaan = fopen( "".$bestand_name, "wb" ); 
fwrite ( $opslaan, $inhoud, $bestand_size ); 
fclose ( $opslaan ); 
?>

Sorry voor het omhoog kicken van zo'n oud topic,
maar dit script maakt bij mij toch nog een 0kb bestandje aan :(
(Server: PHP Safe Made)
Wil iemand mij zeggen wat ik fout doe? :)

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

Mayco2 schreef op 30 april 2003 @ 17:47:
ik gebruik:

code:
1
2
3
4
5
6
7
8
$s = fopen($remotefile, 'rb');
$d = fopen($localfile, 'wb'); 
while (!feof($s)) { 
  $contents = fread($s, 1024); 
  fwrite($d, $contents); 
} 
fclose($d);
fclose($s);
kan ook:
PHP:
1
2
3
4
5
6
7
$s = fopen($remotefile, 'rb');
$d = fopen($localfile, 'wb'); 
while (!feof($s)) { 
  fwrite($d, fread($s, 1024)); 
} 
fclose($d);
fclose($s);

zijn...

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • Frash
  • Registratie: Mei 2002
  • Laatst online: 13:00
Die versie geeft de volgende foutmelding:
code:
1
2
Fatal error: Maximum execution time of 10 seconds exceeded 
in /data/members/free/tripod/it/s/t/r/streamcast/htdocs/dlman3.php on line 6
:)

De andere versie maakt in ieder geval een bestandje aan.
URL: http://utenti.lycos.it/streamcast/dlman3.php
Script:
code:
1
2
3
4
5
6
7
8
9
10
11
<? 
$remotefile = "http://www.google.nl/intl/nl_nl/images/logo.gif"; 
$localfile = "logo_google.gif";
$s = fopen($remotefile, 'rb'); 
$d = fopen($localfile, 'wb'); 
while (!feof($s)) { 
  fwrite($d, fread($s, 1024)); 
} 
fclose($d); 
fclose($s);
?>


Echter gaat een client-lycos upload wel goed.
Maar toch bedankt voor je moeite :)

PS. Excuses voor de lichte layout vervorming

[ Voor 13% gewijzigd door Frash op 21-07-2003 22:11 . Reden: Layout ]


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
In je error staat dat je upload langer dan 10 seconde duurt, en dat php daarom het script afkapt.. Misschien upload je een te grotte file? (lycos is niet echt 'de host' ;))

|>


Acties:
  • 0 Henk 'm!

  • Frash
  • Registratie: Mei 2002
  • Laatst online: 13:00
Ik denk dat dat wel meevalt met het Google logo ;)
Het script is WYSIWYG, dus dat exacte script staat daar :)

[ Voor 38% gewijzigd door Frash op 21-07-2003 22:17 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Wat is volgens jou een WYSIWYG script? Is dat zonder code o.i.d.?

Acties:
  • 0 Henk 'm!

  • Frash
  • Registratie: Mei 2002
  • Laatst online: 13:00
Nee, ik bedoel wat je ziet is wat je krijgt:
Het script wat je ziet, daarmee krijg je de huidige output.
(Zie bovenstaande URL)
Suffie :)
Pagina: 1