2013-04-19 6 views
18

Ich habe eine Upload-Seite in PHP, aber ich weiß nicht, warum die Seite Dokumente nicht größer als 500MB hochladen würde, Dies ist mein erstes Mal zu versuchen, etwas hochzuladen, änderte ich alle Konfigurationen in der PHP.INI (post_max_size = 700M, upload_max_filesize = 600M und max_execution_time = 300). Die Codes für den Upload sind als untenWie lade ich große Dateien über 500MB in PHP

if(isset($_FILES['upload']) && !empty($_FILES['upload']['name'])){ 
move_uploaded_file($_FILES['upload']['tmp_name'], $this->filePath.$this->fileName); 
} 

Ich brauche Hilfe, ich frage mich, ob es etwas gibt, ist nicht richtig zu tun ..

+5

Sie möchten 500 MB in weniger als 5 Minuten hochladen? Ihre Internetverbindung ist schnell! – Jocelyn

+0

Was sind die Fehler in Ihrem Server Fehlerprotokoll? – Jocelyn

+0

@all, sorry mein Server war down, der Fehler zurückgegeben ist undefined Index-Name, als ob das Datei-Upload-Eingabefeld nicht existiert, oder manchmal sagt es Ausführungs-Timeout, frustriert mich –

Antwort

16

Denken Sie, ob eine Erhöhung der Upload-Größenbeschränkung das Problem lösen wird? Was passiert, wenn 2GB-Dateien hochgeladen werden, was passiert dann? Berücksichtigen Sie die Speichernutzung eines solchen Skripts?

Statt dessen, was Sie brauchen, ist Upload chunked finden Sie hier: Handling plupload's chunked uploads on the server-side und hier: File uploads; How to utilize "chunking"?

+0

+1.Dies wäre der Weg zu gehen. HTTP-Posting großer Dateien ist ziemlich unzuverlässig. – Jean

+0

@Jean - ich weiß, ich fühlte es auf meiner eigenen Haut. – Twisted1919

9

Durch Konfiguration, PHP erlaubt nur zum Hochladen von Dateien bis zu einer bestimmten Größe. Es gibt viele Artikel im Internet, die erklären, wie man dieses Limit ändert. Unten sind ein paar von ihnen:

Zum Beispiel können Sie Ihre php.ini Datei und legen Sie bearbeiten:

memory_limit = 32M 
upload_max_filesize = 24M 
post_max_size = 32M 

Sie werden dann müssen Apache neu starten.

Hinweis:
aber sagen, dass das Hochladen von großen Dateien wie das ist nicht sehr zuverlässig. Fehler können auftreten. Möglicherweise möchten Sie die Dateien aufteilen und einige zusätzliche Daten für Fehlerkorrekturen hinzufügen. Ein Weg, dies zu tun, ist par recovery files zu verwenden. Sie können dann die Dateien nach dem Upload mit der par command line utility auf Unix-ähnlichen Systemen überprüfen.

0

Ich nehme an, Sie meinen, dass Sie die Dateien über HTTP übertragen. Während nicht ganz so schlecht wie FTP, ist es keine gute Idee, wenn Sie eine andere der Lösung des Problems finden können. HTTP (und damit die Komponentenprogramme) sind für die Übertragung relativ kleiner Dateien im Internet optimiert.

Während das Protokoll Server-zu-Client-Bereichsanforderungen unterstützt, lässt es die umgekehrte Operation nicht zu. Selbst wenn die Software an beiden Enden von der Lautstärke nicht betroffen ist, gilt: Je mehr Daten Sie übertragen, desto größer ist das Intervall, in dem Sie die Verbindung verlieren könnten. Aber das größte Problem ist dieser Vorbehalt im letzten Satz.

Verwandte Themen