[PHP?] Bestanden uploaden alternatief

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 06:41

HaTe

haat niet

Topicstarter
Ik moet een gedeelte voor een website maken waar bestanden geupload kunnen worden. Maar bij grote bestanden zal dit niet gaan op de normale manier, omdat je dan aan de tijdslimiet van 30 seconden loopt. Dit limiet is bij de server niet te verlengen (ja, one.com sux).

Is er misschien een alternatieve manier om bestanden te uploaden?

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Is het niet verstandig om hiervoor het protocol wat hiervoor bedoelt is te gebruiken; namelijk FTP? Een alternatief zou Google Gears kunnen zijn, deze kan de client helpen om een file in stukken te uploaden; waarna je het in PHP weer kan oppakken :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 06:41

HaTe

haat niet

Topicstarter
Spider.007 schreef op donderdag 01 januari 2009 @ 23:36:
Is het niet verstandig om hiervoor het protocol wat hiervoor bedoelt is te gebruiken; namelijk FTP? Een alternatief zou Google Gears kunnen zijn, deze kan de client helpen om een file in stukken te uploaden; waarna je het in PHP weer kan oppakken :)
Niet iedereen mag alle bestanden wijzigen.. En als ik de FTP functies van php gebruik.. heb ik dan alsnog niet last van de 30 seconden limiet?

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
offtopic:
PHP upload geen bestanden, dat handeld Apache af. Het uploaden van het bestand is nog onderdeel van het HTTP-request.


Kun je ook niet in een htaccess de time-limit verhogen?
code:
1
php_value max_execution_time 30000


Misschien kun je een CGI-variant gebruiken?

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 20-09 17:02
HaTe schreef op vrijdag 02 januari 2009 @ 00:19:
[...]

Niet iedereen mag alle bestanden wijzigen.. En als ik de FTP functies van php gebruik.. heb ik dan alsnog niet last van de 30 seconden limiet?
Als je ftp gebruikt, dan staat php er helemaal buiten. Je zult dan wel voor je gebruikers (waarschijnlijk met de hand) ftp-accounts aan moeten maken. Zo'n systeem gaat helemaal buiten php om.

Een andere mogelijkheid zou zijn om het bestand clientside in stukjes te knippen en die stukjes op de server weer aan elkaar te plakken. Je zou dat kunnen bereiken met een java-applet, flash of activeX. Bestaande producten die het kunnen heb ik nog nergens gezien, dus je zult ze zelf moeten maken.

Denk dan aan een oplossing, vergelijkbaar met Jupload, maar dan in staat om een bestand in stukken te knippen. Of zoals hierboven wordt gezegd een externe partij die de bestanden opdeelt.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ik denk dat dit weinig met een timeout te maken heeft, maar veel meer met upload_max_filesize en post_max_size.
offtopic:
Provider.com sux lijkt me hier trouwens onzin en smaad (=illegaal en theoretisch strafbaar).

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • ReseTTim
  • Registratie: Juni 2000
  • Laatst online: 20-09 16:23

ReseTTim

Chocolate addicted

doeternietoe schreef op vrijdag 02 januari 2009 @ 11:02:
Als je ftp gebruikt, dan staat php er helemaal buiten. Je zult dan wel voor je gebruikers (waarschijnlijk met de hand) ftp-accounts aan moeten maken. Zo'n systeem gaat helemaal buiten php om.
je kunt probleemloos uploaden m.b.v. ftp binnen php. ik heb zoiets wel is gebruikt voor bij het verwijderen van bestanden.

Mijn profiel - Te koop: Overzicht van spullen..


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
ReseTTim schreef op vrijdag 02 januari 2009 @ 12:03:
[...]


je kunt probleemloos uploaden m.b.v. ftp binnen php. ik heb zoiets wel is gebruikt voor bij het verwijderen van bestanden.
Ja maar dat is niet relevant voor de situatie waar een bestand vanaf de client naar de server moet.

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
doeternietoe schreef op vrijdag 02 januari 2009 @ 11:02:
Als je ftp gebruikt, dan staat php er helemaal buiten. Je zult dan wel voor je gebruikers (waarschijnlijk met de hand) ftp-accounts aan moeten maken. Zo'n systeem gaat helemaal buiten php om.
Hoeft niet, je kunt op een Linux server bijvoorbeeld vsftpd gebruiken met een aangepaste pam configuratie die de namen en wachtwoorden uit een mysql database gebruikt. Met een beetje handigheid is dat dus te combineren met de php file manager.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
benoni schreef op vrijdag 02 januari 2009 @ 13:22:
[...]
Hoeft niet, je kunt op een Linux server bijvoorbeeld vsftpd gebruiken met een aangepaste pam configuratie die de namen en wachtwoorden uit een mysql database gebruikt. Met een beetje handigheid is dat dus te combineren met de php file manager.
Hmmm, ja goed idee. Hoef je alleen al je clients nog maar om te zetten naar linux + vsftpd + aparte pam configuratie ;)

Hij wil van client naar server.

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 06:41

HaTe

haat niet

Topicstarter
De normale FTP functies van PHP werken niet op de server. Ik heb wel een class gevonden die dit ook schijnt te kunnen: deze

Ik heb net een beetje ingelezen op het gebruik van classes enzo, maar ik snap er niet echt veel van. Ik heb er van begrepen dat je eerst dit doet:
$ftp = new ftp;

en dan elke functie aanroept met $ftp->functie()

Maar what the hell. Dat lijkt mij niet goed! Ik heb het geprobeerd en als ik de test pagina laadt, met een standaard ftp upload script, dan gebeurt er niks.

Dit heb ik gedaan: (niet lachen)
PHP:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
require("ftp.php");
$ftp = new ftp;

/*
***************************************************************************************                
        
***************************************************************************************
*/

echo '<form action="test.php" method="post" enctype="multipart/form-data">';
echo 'Click the Browse button to find the file you wish to upload';
echo '<input type="file" name="imagefile">';
echo '<INPUT TYPE="submit" name="upload" value="upload">';
echo '</form>';
/**************************************************************************************
***************************************************************************************                
***************************************************************************************
***        <input type="file" name="imagefile">                                          ***        
***        with the above tag declared in the calling form         ***
***        the variable name is $imagefile and the available properties are ***
***        $imagefile :name of the file as stored on the temporary server directory ***
***        $imagefile_name :filename.extension of the file as on the users machine ***
***        $imagefile_size        :size in bytes of the file ***
***        $imagefile_type        :the type of file image/gif image/jpg text/html etc.... ***
*** ***
***************************************************************************************
***************************************************************************************
*/
//change these values to suit your site
$ftp_user_name=
$ftp_user_pass='
$ftp_server='ft
$ftp_dir='/ve/';
//$web_location is needed for the file_exists function, the directories used by FTP
//are not visible to it will will always return not found.
$web_dir='../upload/';
$web_location=$web_dir.$imagefile_name;

//build a fully qualified (FTP) path name where the file will reside
$destination_file=$ftp_dir.$imagefile_name;

// connect, login, and transfer the file
$conn_id = $ftp->ftp_connect($ftp_server);
$login_result = $ftp->ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
$upload = $ftp->ftp_put($conn_id, $destination_file, $imagefile, FTP_BINARY);

//use ftp_site to change mode of the file
//this will allow it be visible by the world,
$ch=$ftp->ftp_site($conn_id,"chmod 777 ".$destination_file);
// close the FTP stream
$ftp->ftp_close($conn_id);

//verify file was written
if (file_exists($web_location))
        {
        echo "file was uploaded as $web_location";
        }
else
        {
        echo "Could not create $web_location";
        }
//end if

?>

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Je bent nu aan het kijken naar ftp-client dingen; maar dat was niet wat ik bedoelde. Zet een (losse) FTP server op; laad gebruikers via FTP files uploaden en kijk daarna in PHP wat er geupload is. Als de FTP server op dezelfde machine staat; kun je dat dus direct op het filesystem doen.

Kijk anders eens naar mijn (eenvoudiger te implementeren) idee van Google gears; wat heel aardig hier beschreven is: http://www.scriptorama.nl...quest-met-progress-events

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Je gaat nu de verkeerde kant op. Dat ftp-script is om de server een bestand naar een andere ftp-server te laten sturen.

Als je wilt dat je users ftpen dan valt er volgens mij niets automatisch te regelen in de browser en kan je alleen maar een tutorial voor het gebruik van ftp op je site zetten met een ftp-client ernaast.
Zodat mensen zelf de client kunnen downloaden en dan met behulp van tutorial inloggen en bestandjes bij jou zetten.

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 20-09 17:02
pedorus schreef op vrijdag 02 januari 2009 @ 11:58:
offtopic:
Provider.com sux lijkt me hier trouwens onzin en smaad (=illegaal en theoretisch strafbaar).
offtopic:
Voor strafbare smaad is wel iets meer nodig :)
ReseTTim schreef op vrijdag 02 januari 2009 @ 12:03:
[...]
je kunt probleemloos uploaden m.b.v. ftp binnen php. ik heb zoiets wel is gebruikt voor bij het verwijderen van bestanden.
Je hebt het niet helemaal begrepen ben ik bang. Als je gebruikmaakt van de ftp-functionaliteit van PHP gedraagt PHP zich richting een ftp-server als client. Dat is juist niet wat we zoeken, wij willen een browser als client en php icm de server.
benoni schreef op vrijdag 02 januari 2009 @ 13:22:
[...]


Hoeft niet, je kunt op een Linux server bijvoorbeeld vsftpd gebruiken met een aangepaste pam configuratie die de namen en wachtwoorden uit een mysql database gebruikt. Met een beetje handigheid is dat dus te combineren met de php file manager.
Ik ben op de hoogte van die mogelijkheid. Met Profpfd kan dat ook. Echter, de TS komt hier met de vraag omdat tie de settings uit de php.ini niet kan overriden. Het lijkt me niet waarschijnlijk dat hij dan wel in staat is om de ftp-deamon van z'n shared hosting usernames uit een mysql database te laten lezen.

Wat de TS moet doen is:
- in het controlepaneel van de hosting voor iedere gebruiker een ftp-account aanmaken met voor iedere account beperkte toegang tot slechts één folder
- de ftp usernames en passwords aan de gebruikers verstrekken
- deze hun bestanden laten oploaden
- periodiek een php-script draaien dat controleert of er nieuwe bestanden zijn bijgekomen en indien dat zo is deze bestanden verwerken

Of gebruik maken van een andere methode.

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 06:41

HaTe

haat niet

Topicstarter
@Spider: Maar ik kan toch wel die ftp class gebruiken om los bestanden te uploaden? Daar is hij ook voor bedoelt.
Naar Google Gears kan ik best wel eens kijken :) Bedankt
Je hebt het niet helemaal begrepen ben ik bang. Als je gebruikmaakt van de ftp-functionaliteit van PHP gedraagt PHP zich richting een ftp-server als client. Dat is juist niet wat we zoeken, wij willen een browser als client en php icm de server.
Dat willen we wel toch? Ik wil dat een (PHP) script een bestand upload naar de ftp server.

@ jouw meerdere FTP accounts oplossing: Kan niet. Het is niet mogelijk om bij de host meerdere accounts aan te maken :(

Ik kijk vanavond even naar Gears. Nu ga ik sporten.
En met FTP moet het volgens mij gewoon kunnen. Ik weet alleen niet hoe een class werkt.

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 20-09 17:02
HaTe schreef op vrijdag 02 januari 2009 @ 16:35:
Dat willen we wel toch? Ik wil dat een (PHP) script een bestand upload naar de ftp server.
Schematisch ziet het er zo uit, misschien dat mijn verhaal dan iets duidelijker wordt:
Afbeeldingslocatie: http://img99.imageshack.us/img99/7996/httppy6.th.png
Afbeeldingslocatie: http://img156.imageshack.us/img156/1546/ftpfw1.th.png
Afbeeldingslocatie: http://img185.imageshack.us/img185/9253/httpphpftpjm8.th.png
Voordat PHP iets met ftp kan, moet PHP eerst over het bestand beschikken.

De ftp-functionaliteit van PHP is bijvoorbeeld gemakkelijk als je bestanden die gebruikers uploaden moet versturen naar de server van een derde. Of als je geen machtigingen hebt om op de eigen server via php mappen aan te maken.(safemode). In het laatste geval kan je met ftp een verbinding maken met ftp://localhost/ en via ftp de mappen aanmaken.
@ jouw meerdere FTP accounts oplossing: Kan niet. Het is niet mogelijk om bij de host meerdere accounts aan te maken :(

Ik kijk vanavond even naar Gears. Nu ga ik sporten.
En met FTP moet het volgens mij gewoon kunnen. Ik weet alleen niet hoe een class werkt.
Kijk bijvoorbeeld eens hier:
http://nl2.php.net/manual/en/language.oop5.basic.php (die van PHP4 staat er ook)

Er bestaan wel gemakkelijker howto's, maar deze is heel compact en compleet.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
HaTe schreef op vrijdag 02 januari 2009 @ 16:35:
[...]
Dat willen we wel toch? Ik wil dat een (PHP) script een bestand upload naar de ftp server.
Ik gok dat je dit helemaal niet wilt. Gemiddelde website bezoeker heeft geen php geinstalleerd staan dus jouw script kan nog niet eens op die computer draaien ( nog even daargelaten hoe je het script op de pc van de bezoeker en dan ook nog eens uitgevoerd )

PHP draait op je server. Met dat script kun je vanaf je server ergens anders een bestand heen ftp'en.
Je moet het doen met wat op de client draait en dat is Javascript / HTML en misschien Google Gears.

PHP heeft niets met het uploaden vanaf de client te maken

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 06:41

HaTe

haat niet

Topicstarter
Gomez12 schreef op vrijdag 02 januari 2009 @ 18:40:
[...]

Ik gok dat je dit helemaal niet wilt. Gemiddelde website bezoeker heeft geen php geinstalleerd staan dus jouw script kan nog niet eens op die computer draaien ( nog even daargelaten hoe je het script op de pc van de bezoeker en dan ook nog eens uitgevoerd )

PHP draait op je server. Met dat script kun je vanaf je server ergens anders een bestand heen ftp'en.
Je moet het doen met wat op de client draait en dat is Javascript / HTML en misschien Google Gears.

PHP heeft niets met het uploaden vanaf de client te maken
Ja weet ik. Maar dat zeg ik ook niet. Ik zeg dat een php script het bestand upload. Niet de bezoeker via PHP ;)

Oke, nu ga ik echt sporten :P

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 20-09 17:02
HaTe schreef op vrijdag 02 januari 2009 @ 19:10:
[...]

Ja weet ik. Maar dat zeg ik ook niet. Ik zeg dat een php script het bestand upload.
Juist. Maar de gebruiker ziet niets van de PHP. Het hele PHP is slechts een manier om op Apache/IIS/Tomcat/etc dynamisch output met bijvoorbeeld html te maken. De browser ziet niets van de PHP terug, dat blijft intern op de server.

offtopic:
sportze :)

[ Voor 3% gewijzigd door doeternietoe op 02-01-2009 19:15 ]


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
HaTe schreef op vrijdag 02 januari 2009 @ 19:10:
[...]
Ja weet ik. Maar dat zeg ik ook niet. Ik zeg dat een php script het bestand upload. Niet de bezoeker via PHP ;)
???
Wie of wat moet nu bestanden kunnen uploaden naar de server?
De bezoeker of de server zelf?

Want als de bezoeker het moet uploaden naar de server dan valt php af.
Als de server de bestanden al heeft dan kan de server deze via php-ftp doorzetten naar een andere server

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 06:41

HaTe

haat niet

Topicstarter
Jullie hebben gelijk :P Ik was net een beetje wazig

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

Damn, moet ook beter lezen... Heeft PHP threading mogelijkheden of heb je de mogelijkheid om op de server een process te starten? Dan zou je niet hoeven wachten totdat hij klaar is en kun je meteen returnen naar een status page die auto-refreshed o.i.d.

[ Voor 71% gewijzigd door CMG op 03-01-2009 14:35 ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 20-09 17:02
CMG schreef op zaterdag 03 januari 2009 @ 14:33:
Damn, moet ook beter lezen... Heeft PHP threading mogelijkheden of heb je de mogelijkheid om op de server een process te starten? Dan zou je niet hoeven wachten totdat hij klaar is en kun je meteen returnen naar een status page die auto-refreshed o.i.d.
Dat gaat je niet helpen, als het PHP-script maar een execution time van 30 seconden heeft, dan stopt het script simpelweg met ontvangen na die 30 seconden. Wat jij wilt lijkt hier op:
http://www.scriptorama.nl...load-progress-bar-met-php

Binnen de huidige webstandaarden is daar geen standaard voor, dus moet je uitwijken naar plugins van derden, zoals gears, java of flash. Het voordeel van flash en in iets mindere mate van java is dat bijna iedereen het al geïnstalleerd heeft. Gears zullen de meeste mensen nog moeten installeren. Gears is wel het gemakkelijkst te implementeren.

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 06:41

HaTe

haat niet

Topicstarter
Ik ben er uit! Ik ga Google Gears gebruiken :) Bedankt iedereen voor de goede hulp. Google Gears is echt handig en kan ik iedereen wel aanbevelen.

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs

Pagina: 1