subir mostrarla imagenes imagen example ejemplo archivos _files php jquery-plugins file-upload apache2

mostrarla - upload file php 7



Subida de archivos HTTP de 4GB usando jQuery-File-Upload, Apache y PHP (3)

La pregunta es por qué usarías tu navegador para subir> 1GB. Considere la posibilidad de que los principales servicios de intercambio de archivos limiten el tamaño de carga de archivos a 1 GB mediante el navegador. ¿Qué sucede si falla la descarga del usuario? Tendría que reiniciar todo el proceso.

¿Ha buscado alternativas si tiene cargas de archivos tan grandes, torrents, ftp o clientes de carga personal como rapidshare, fileupload, megaupload, etc. Have.

Estás limitado debido al límite de tamaño de archivo establecido en POST. Si está decidido a utilizar HTTP para cargar archivos más grandes que desaconsejaría, la solución óptima sería dividir el archivo y cargar las partes más pequeñas y luego volver a ensamblar el archivo.

Este problema parece estar directamente relacionado con el infame límite de 2 GB y no estoy seguro en este momento si se trata de un problema PHP de 32 bits. He visto que los comentarios relacionados con HTTP no están diseñados para archivos tan grandes. Sin embargo, prefiero agotar esta dirección antes de decidir sobre cualquier cambio fundamental en lo que se ha demostrado que funciona hasta ahora. Como el título sugiere que necesito subir archivos de> 2GB, el más grande hasta el momento es de 3.8GB. Tengo un formulario creado usando jQuery-file-upload que no ha tenido problemas para enviar ningún archivo (menos de <2 GB) hasta que se hayan iniciado. El de 3.8GB puede tardar 5 minutos en cargarse desde la carga de archivos y la barra de progreso se completa al 100%. Sin embargo, el error informado después de la carga es un tipo 1 que sugiere que el límite de tamaño del archivo ha sido violado.

Si controlo el uso del disco en el servidor durante la carga, tendrá las siguientes propiedades de muestra: Antes de cargar, el disco se usa en un 30%, a medida que la carga continúa este uso aumenta, 31%, 32% ... 45%, 46% etc. Sin embargo, en torno al punto de 2 GB, el uso del disco vuelve al 30% mientras continúa el cliente / navegador File-Upload. Cuando el uso del disco de los servidores se incrementa, el cliente solo puede estar al 60% de la carga. Sin embargo, el cliente aún continúa al 100%, pero el servidor no lo acepta, ya que el estado del disco nunca se mueve un 30%.

Estoy ejecutando 64bit Ubuntu (más reciente) con Apache / 2.2.22 (Ubuntu) y PHP versión 5.3.10-1ubuntu3.2 Después de muchos días buscando y soltando una solución, todavía no puedo cargar el archivo de 3.8 GB después de cambiar tantos ajustes Voy a enumerar el tipo de cambios a continuación, pero en esta etapa creo que puede ser un problema PHP de 32 bits, así que si alguien puede sugerir un enlace que vale la pena seguir o una solución que vale la pena probar, lo agradecería.

En Apache2 he configurado lo siguiente:

- apache2.conf I''ve set Timeout to 900 - httpd.conf I''ve set LimitRequestBody to 0 - .htaccess in the file upload directory I''ve set: - LimitRequestBody to 4939212390 - php_value upload_max_filesize 4831838208 - php_value post_max_size 4939212390

En php.ini he establecido lo siguiente:

- UPLOAD_MAX_FILESIZE 4831838208 - POST_MAX_SIZE 4939212390 - max_execution_time 120 - max_input_time 60 - memory_limit 128M

Si ejecuto lo siguiente en el servidor parecería que el PHP no tiene un problema de 32 bits, pero no estoy seguro en este momento.

php -r "echo PHP_INT_MAX;" 9223372036854775807

Como mencioné, cualquier idea sería muy apreciada.

ACTUALIZAR:

Han resuelto este problema, así que gracias a @BogdanBurim por sugerir el enfoque de volver a lo básico:

Pude cargar un archivo de 3.8 GB a través de HTTP con la siguiente configuración:

En Apache2 he configurado lo siguiente:

- apache2.conf I''ve set Timeout to 900 - httpd.conf I''ve set LimitRequestBody to 0 - .htaccess in the file upload directory I''ve set: - LimitRequestBody to 0 - php_value upload_max_filesize 0 - php_value post_max_size 4939212390 - .htaccess in the php temp directory (in my case its /tmp/) I''ve set: - LimitRequestBody to 0 - php_value upload_max_filesize 0 - php_value post_max_size 4939212390

En php.ini he establecido lo siguiente:

- UPLOAD_MAX_FILESIZE 0 - POST_MAX_SIZE 4939212390 - max_execution_time 120 - max_input_time 60 - memory_limit 128M

La única parte importante de esta solución fue eliminar el MAX_FILE_SIZE, HTML del formulario de carga:

<input type="hidden" name="MAX_FILE_SIZE" value="4939212390" />

Tener este conjunto continuamente causaba un error tipo 2 de PHP, por lo que php no podía manejar el entero mayor que 32 bits establecido. Quitarlo provocó errores de tipo 1 de PHP hasta que cambié UPLOAD_MAX_FILESIZE a 0 en todas partes y ¡listo! Ahora funciona !!!!

http://php.net/manual/en/features.file-upload.errors.php


Han resuelto este problema, así que gracias a @BogdanBurim por sugerir el enfoque de volver a lo básico:

Pude cargar un archivo de 3.8 GB a través de HTTP con la siguiente configuración:

En Apache2 he configurado lo siguiente:

- apache2.conf I''ve set Timeout to 900 - httpd.conf I''ve set LimitRequestBody to 0 - .htaccess in the file upload directory I''ve set: - LimitRequestBody to 0 - php_value upload_max_filesize 0 - php_value post_max_size 4939212390 - .htaccess in the php temp directory (in my case its /tmp/) I''ve set: - LimitRequestBody to 0 - php_value upload_max_filesize 0 - php_value post_max_size 4939212390

En php.ini he establecido lo siguiente:

- UPLOAD_MAX_FILESIZE 0 - POST_MAX_SIZE 4939212390 - max_execution_time 120 - max_input_time 60 - memory_limit 128M

La única parte importante de esta solución fue eliminar el MAX_FILE_SIZE, HTML del formulario de carga:

<input type="hidden" name="MAX_FILE_SIZE" value="4939212390" />

Tener este conjunto continuamente causaba un error tipo 2 de PHP, por lo que php no podía manejar el entero mayor que 32 bits establecido. Quitarlo provocó errores de tipo 1 de PHP hasta que cambié UPLOAD_MAX_FILESIZE a 0 en todas partes y ¡listo! Ahora funciona !!!!

http://php.net/manual/en/features.file-upload.errors.php


Si tiene acceso a la configuración de apache virtualhost, también puede cambiar esta configuración para una URL de carga específica (también puede agregarla a su archivo .htaccess):

Con este código:

<LocationMatch "/index.php/url-of-your-upload.php"> php_value max_execution_time 0 php_value upload_max_filesize 0 php_value post_max_size 4939212390 php_value memory_limit 4G LimitRequestBody 0 </LocationMatch>

Las directivas de LocationMatch le permiten elegir la URL (puede usar reg exp)