Subir archivos a una carpeta del servidor en toba 3.4

Bueno, no se como lo cargas en el cuadro, si me pasas una muestra podría coger la idea, en el formulario lo que hago es en la etiqueta de vista previa adicionar las propiedades width=100px height=100px

Así lo tengo definido en toba_editor:


Y estas son las propiedades del campo:

Así, te mostraria solamente el nombre del archivo almacenado en la BD, me refería a si ya muestras la imagen en el cuadro

Sí, se muestra, fijate que en el campo imagen en formateo pongo imagen del proyecto, pero se muestra con el tamaño real y yo quiero achicarla para que no ocupe tanto espacio en la pantalla.
Te mando una captura de pantalla donde se muestra la imagen en el cuadro para que veas el tamaño:


Como podes ver ocupa toda la pantalla.

Ahh, comprendo no lo he usuado de dicha forma, pero lo que haría es cuando cargas los datos del cuadro, antes de asignarlo al mismo, recorrer dicho array con un foreach y aplicarle el complemento:

$datos[$fila][‘imagen’] = “”;

en el campo de cuadro lo he usado no como imagen del proyecto, si no sin cambios.

Depronto alguien del foro si lo haya usuado de como lo estas haciendo, que me parece buena idea

Tengo algo parecido como lo siguiente:

function conf__cuadro_candidatos()
{
$datos = $this->get_relacion()->tabla(‘pacientes’)->get_filas();
$fila = 0;
foreach ($datos as $pacientes) {
$foto_archivo = null;
foreach ($pacientes as $paciente=>$value) {
if ($paciente == ‘id_paciente’) $id_paciente = $value;
}
if ($pacientes[‘imagen’) $foto_archivo = $pacientes[‘imagen’];
else $foto_archivo = ‘0.png’; //una imagen en blanco donde guardas las otras
$imagen = toba_recurso::imagen_proyecto(‘/’.$foto_archivo);
$datos[$fila][‘imagen’] = “”;
$fila++;
}
return $datos;
}

Te agradezco mucho la respuesta, eso me puede servir para otro momento, lo que necesito ahora es que los registros en los que el campo imagen no es nulo me muestre la imagen con un alto y un ancho de 100px, ¿cómo puedo hacer eso?

Ya lo pude arreglar, gracias igualmente por tu ayuda, lo que hice fue crear una clase .ei-toba-fila > img en toba.css y le puse width y height en 100px

Tuve un problema para subir un archivo, no me cambia los acentos y caracteres especiales con el método que me pasaste, así tengo los dos métodos (get_validar_descargas y quitar_tildes):

	static function get_validar_descargas ($datos, $array_directorios)    {
		$aux_datos = $datos;
		$fp = fopen($datos["archivo"]["tmp_name"], "rb");
		$archivo_adjunto = self::quitar_tildes($datos["archivo"]["name"]);
		$ruta = self::set_crear_directorios ($array_directorios);
		$archivo = $ruta.'/'.$archivo_adjunto;
		if(file_exists($archivo)) {
			$archivo_adjunto = rand (1, 1000).'_'.$archivo_adjunto;
		}
		$ruta .= '/'.$archivo_adjunto;
		$datos['imagen'] = implode("/", $array_directorios)."/".$archivo_adjunto;
		if (move_uploaded_file($datos['archivo']['tmp_name'], $ruta)) {
			toba::notificacion()->agregar("<center>El archivo se subio exitosamente al servidor.",'info');
			return $datos;
		} else {
			toba::notificacion()->agregar("<center>ERROR: El archivo no se logro subir con exito.",'error');
		}
		return $aux_datos;
	}
	
	static function quitar_tildes($cadena){
		//Reemplazamos la A y a
		$cadena = str_replace(
		array('Á', 'À', 'Â', 'Ä', 'á', 'à', 'ä', 'â', 'ª'),
		array('A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a'),
		$cadena
		);

		//Reemplazamos la E y e
		$cadena = str_replace(
		array('É', 'È', 'Ê', 'Ë', 'é', 'è', 'ë', 'ê'),
		array('E', 'E', 'E', 'E', 'e', 'e', 'e', 'e'),
		$cadena );

		//Reemplazamos la I y i
		$cadena = str_replace(
		array('Í', 'Ì', 'Ï', 'Î', 'í', 'ì', 'ï', 'î'),
		array('I', 'I', 'I', 'I', 'i', 'i', 'i', 'i'),
		$cadena );

		//Reemplazamos la O y o
		$cadena = str_replace(
		array('Ó', 'Ò', 'Ö', 'Ô', 'ó', 'ò', 'ö', 'ô'),
		array('O', 'O', 'O', 'O', 'o', 'o', 'o', 'o'),
		$cadena );

		//Reemplazamos la U y u
		$cadena = str_replace(
		array('Ú', 'Ù', 'Û', 'Ü', 'ú', 'ù', 'ü', 'û'),
		array('U', 'U', 'U', 'U', 'u', 'u', 'u', 'u'),
		$cadena );

		//Reemplazamos la N, n, C y c
		$cadena = str_replace(
		array('Ñ', 'ñ', 'Ç', 'ç'),
		array('N', 'n', 'C', 'c'),
		$cadena
		);
		
		return $cadena;
	}

¿Dónde está el error por el que no cambia los caracteres especiales?

Porque sigues usuando más abajo

if (move_uploaded_file($datos['archivo']['tmp_name'], $ruta)) {

el cual se cambió por $archivo_adjunto, al cual se le quitaron las tildes

Muchas gracias, ahora funciona perfecto

Hola @jorozco, por favor pasame el método para validar por ajax el tamaño del archivo a subir. Gracias.

Lo que hago es extender el formulario donde el usuario sube el archivo y llamo el archivo extension_descargas.php correspondiente al código:
Lo puede mejorar parametrizando y trayendo el máximo de la descarga, pero no lo extendía a Ajax, para no complicarte.

<?php class extension_descargas extends toba_ei_formulario { function extender_objeto_js() { echo " {$this->objeto_js}.evt__archivo__procesar = function(es_inicial) { var servidor_descarga = 5; //Megas, corresponde al valor max_upload en php.ini, se puede parametrizar y traerlo por ajax var maxima_permitida = 1024 * 1024 * servidor_descarga; if (! es_inicial && this.ef('archivo').get_estado()) { var uploadedFile = this.ef('archivo').input(); //contiene el document.getElementById(ef) var fileSize = uploadedFile.files[0].size; //descarga del cliente if (fileSize > maxima_permitida) { alert ('La descarga supera el má permitido de ' + servidor_descarga + ' Mega Bytes' + ' - ' + 'Comprima y subalo nuevamente o Cancele la Operaci\u00F3n'); this.controlador.desactivar_boton('guardar'); this.ef('archivo').set_estado (null); return false; } this.controlador.activar_boton('guardar'); return true; } } "; } } ?>

Cuando me pasaste el código de la clase para subir y validar el archivo, me pasaste un método get_validar_tamanyo que llama a un método dentro de la misma clase llamado get_requerimientos, y no me pasaste ese método para agregarlo a la clase, ¿me podrías pasar ese método en vez del código citado en este mensaje?

Tengo un error cuando uso $archivo_adjunto en vez de $datos['archivo']['tmp_name'] me dice que no puede subir el archivo, pero cuando lo vuelvo a cambiar, o sea lo dejo así: if (move_uploaded_file($datos['archivo']['tmp_name'], $ruta)) { lo sube correctamente pero sin quitarle los tildes, ¿cómo puedo hacer para que me quite los tildes en el nombre del archivo?
Es algo inconcebible, en mi casa lo pude hacer poniendo if (move_uploaded_file($archivo_adjunto, $ruta)) { pero en el trabajo no me deja, la informática no tiene ninguna lógica :hot_face::hot_face::hot_face::hot_face:

Verifica que tengas todos los permisos, sobre la carpeta donde se descargan

Tengo un problema, cuando quiero subir el archivo me crea la carpeta pero el propietario de la carpeta es www-data, tanto cuando subo la imagen mediante move_uploaded_file($archivo_adjunto, $ruta) como con move_uploaded_file($datos['archivo']['tmp_name'], $ruta), pero con la segunda forma sí lo sube al archivo, y antes de subir el archivo ejecuté el comando sudo chown -R matias:www-data ./ dentro de la carpeta framework.
Puede ser que el problema se de por la configuración de la red en cada lugar (mi casa y el trabajo)?