El elemento para subir archivos parece no comprobar el tamaño del archivo a subir. ¿Puedo comprobar el tamaño del archivo y evitar que según el tamaño no se guarde en el servidor?
A tal propósito, copie el siguiente código en Avanzado > más opciones > Enviar piezas > Inicio del envío: Personalizado
$this->execPieceByName('ff_InitLib'); // registrar el nombre del elemento de subida de datos $filename = ff_getSubmit('upload'); // comprobar el tamaño del archivo a subir if ($filename && filesize($filename) >= 1048576) { // 1MB // generar mensaje personalizado de error $this->status = _FF_STATUS_UPLOAD_FAILED; // borrar el archivo subido unlink($filename); header("Location: URLtoForm&error=true"); }
Cambie URLtoForm por la url que enlaza con la primera página de su formulario. No cambie la parte de '&error=true'
Copie este código en Piezas del formulario > Antes del formulario - personalizado:
$this->execPieceByName('ff_initLib'); $show_error = JRequest::getVar('filesize'); if ($show_error == 'true') { echo '<script type="text/javascript">alert("Mensaje de error")</script>;'; }
Cambie 'Mensaje de error' por el mensaje de error que desea que se muestre.
Ahora, si el archivo subido supera el límite definido, el formulario se redireccionará a su primera página y mostrará un mensaje de error.
Tenga en cuenta que esto no funciona con formularios en iFrames!
Además de esta solución particular con código PHP, también hay muchas otras posibles usando Javascript. Puede encontrar otro ejemplo aquí http://stackoverflow.com/questions/3717793/javascript-file-upload-size-validation.