Estoy cargando un archivo grande a través de ajax. La velocidad de carga está bien, pero cuando la barra de progreso llega al 100 %, hay una larga espera y aparece este error.
Error al cargar el recurso: el servidor respondió con un estado de 504 (Tiempo de espera de puerta de enlace) - upload.php .
El archivo aparece en la carpeta de destino, pero no hay una respuesta del servidor.
Esto no sucede con los archivos más pequeños. Parece que lleva mucho tiempo mover_archivo_cargado de la carpeta temporal a la carpeta de destino.
var xhr, hUploadSpeed; function sendFile() { document.getElementById("serverresponse").innerHTML = "";//clear previous server response var url = "http://www.example.com/wp-content/themes/theme1/file-upload/upload.php"; var formData = new FormData(document.getElementById("form1")); xhr = new XMLHttpRequest(); xhr.upload.addEventListener('progress', uploadProgress, false);//EventListener for upload progress xhr.addEventListener('abort', uploadAbort, false);//EventListener for abort xhr.addEventListener('error', uploadError, false);//EventListener for error xhr.addEventListener('load', uploadThrough, false);//EventListener for completed upload xhr.open("POST", url, true); //xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //no longer necessary here xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { document.getElementById("serverresponse").innerHTML = xhr.responseText; } } xhr.send(formData); //Send to server hUploadSpeed = setInterval(UploadSpeed, 1000); //per seconds }Subir.php
//You can access the uploaded files through $_FILES if(isset($_FILES["file1"])) $target_file = $_SERVER['DOCUMENT_ROOT']."/videos/".$_FILES["file1"]['name']; move_uploaded_file($_FILES["file1"]["tmp_name"], $target_file); echo "File uploaded successfully.";Esto funciona perfectamente con archivos más pequeños de 50 mb, pero cuando llego a archivos de alrededor de 300 mb. ¿Se tarda tanto?
Tengo un servidor dedicado con este php.ini
upload_max_filesize = 1200M post_max_size = 1200M max_input_vars = 1000 memory_limit = -1 max_file_uploads = 20 max_execution_time = 7200 max_input_time = 7200 max_input_vars = 1000¿Por que tarda tanto? ¿Cómo resuelvo?
También hay memory_limit en php.ini que puede afectar la carga. php.ini es un archivo de configuración del servidor.
Tienes que aumentar los siguientes valores en tu archivo php.ini :
php_value upload_max_filesize 10M php_value post_max_size 10M php_value max_input_time 300 php_value max_execution_time 300y luego reinicie el servidor.
Creo que su problema puede ser este error de php: https://bugs.php.net/bug.php?id=73807 Su configuración de php está bien.
Corregido en la rama 7 y 7.1. No en php 5.6 ahora. Quizás pronto. Si puede, actualice su aplicación a 7.1 (el rendimiento también es más de 2 veces más rápido), si no puede, simplemente espere php> 5.6.30