perdona pero si me lo habia leido, es que como ponia
para copy
Código PHP:
copy ( string origen, string destino )
para move_upload_file
Código PHP:
move_uploaded_file ( string nombre_archivo, string destino )
a lo mejor no lo habia entendido bien, pero al ver lo que tu me has dicho y los ejemplos para ser que si usa los mismos parametros
esta la clase de special; solo he cambiado copy por move_uploada_file
Código PHP:
<?php
//----------------------------------------------------------------------------------------------------------CLASE
class FileUpLoad {
//------------------------------------------------------PROPIEDADES
var $directorio;
var $nombre_archivo;
var $repetido;
var $tipos_validos;
var $crea_direcotorios;
var $permisos_direcotorios;
var $max_weight;
var $min_weight;
var $errores;
//------------------------------------------------------METODO
function InicializaErrores() {
$this->errores = '';
}
//------------------------------------------------------METODO
function AgregaError($error) {
$this->errores .= $error;
}
//------------------------------------------------------METODO
//vasado en el script encontrado en php.net en la función con cabecera (andrei at bizland dot ro 24-Oct-2004 06:33)
function CreaDirectorioRecursivo($dir, $permisos) {
if (file_exists($dir)) return false;
preg_match_all('/([^\/]*)\/?/i', $dir, $atmp);
$base = '';
foreach ($atmp[0] as $directorio) {
$base .= $directorio;
if((!file_exists($base)) && (!mkdir($base, $permisos))) return false;
}
return false;
}
//------------------------------------------------------METODO
function ExisteArchivo($nombre_archivo) {
if($this->nombre_archivo) $nombre_archivo = $this->nombre_archivo;
switch($this->repetido) {
//sobreescribir
case 1: {
$this->nombre_archivo = $nombre_archivo;
break;
}
//copiar con nuevo nombre
case 2: {
$array_partes = explode('.', $nombre_archivo);
if((count($array_partes)) > 1) {
$extension = '.' . implode('.', array_slice($array_partes, 1));
$nombre = $array_partes[0];
}
else {
$extension = '';
$nombre = $nombre_archivo;
}
$nombre_temp = $nombre . $extension;
$i = 0;
while(file_exists($this->directorio . $nombre_temp)) {
$nombre_temp = $nombre . '_' . $i . $extension;
$i++;
}
$this->nombre_archivo = $nombre_temp;
break;
}
//abortar si el fichero existe
default : {
if(file_exists($this->directorio . $nombre_archivo)) return false;
return true;
break;
}
}
return true;
}
//------------------------------------------------------METODO
function CrearDirectorios($permisos = 0777) {
$this->crea_direcotorios = true;
$this->permisos_directorios = $permisos;
return true;
}
//------------------------------------------------------METODO
function NombreDeArchivo($nombre) {
$this->nombre_archivo = $nombre;
return true;
}
//------------------------------------------------------METODO
function TiposValidos($array_tipos) {
if(is_array($array_tipos)) $this->tipos_validos = $array_tipos;
return false;
}
//------------------------------------------------------METODO
function PesoMaximo($peso) {
$this->max_weight = $peso * 1024;
return true;
}
//------------------------------------------------------METODO
function PesoMinimo($peso) {
$this->min_weight = $peso * 1024;
return true;
}
//------------------------------------------------------METODO
function SiArchivoExiste($repetido) {
$this->repetido = $repetido;
return true;
}
//------------------------------------------------------METODO
function EstableceDirectorio($dir) {
//si no existe el directorio, deseamos crearlo, y lo creamos satisfactoriamente, o si el directorio existe y es escribible
if(((!file_exists($dir)) && ($this->crea_direcotorios == 1) && ($this->CreaDirectorioRecursivo($dir, 0777))) || ((is_dir($dir)) && (is_writable($dir)))) {
$this->directorio = $dir;
}
return true;
}
//------------------------------------------------------METODO
function Subir($form_file_name, $permisos = 0777, $nombre = '') {
$this->InicializaErrores();
if(!empty($nombre)) $this->NombreDeArchivo($nombre);
if(!isset($_FILES[$form_file_name])) {
$this->AgregaError('No se ha recibido ningún archivo.<br>');
}
if(!$this->ExisteArchivo($_FILES[$form_file_name]['name'])) {
$this->AgregaError('El archivo ya existe y no está habilitada la opción de sobreescribir.<br>');
}
if($_FILES[$form_file_name]['error'] != 0) {
$this->AgregaError('El archivo no se ha recibido correctamente.<br>');
}
if(!$this->directorio) {
$this->AgregaError('No tiene permisos para escribir en el directorio seleccionado o para crearlo.<br>');
}
if(($this->min_weight) && ($_FILES[$form_file_name]['size'] < $this->min_weight)) {
$this->AgregaError('El tamaño del archivo no supera el mínimo permitido.<br>');
}
if(($this->max_weight) && ($_FILES[$form_file_name]['size'] > $this->max_weight)) {
$this->AgregaError('El tamaño del archivo es superior al máximo permitido.<br>');
}
if(($this->tipos_validos) && (!in_array($_FILES[$form_file_name]['type'], $this->tipos_validos))) {
$this->AgregaError('El tipo de archivo enviado no es válido.<br>');
}
if((empty($this->errores)) && (!move_upload_file($_FILES[$form_file_name]['tmp_name'], $this->directorio . $this->nombre_archivo))) {
$this->AgregaError('No se ha podido subir el archivo, revise los errores previos.<br>');
}
if(!empty($this->errores)) return $this->errores;
chmod($this->directorio . $this->nombre_archivo, $permisos);
return true;
}
}
?>
y asin llamo a la clase;
Código PHP:
$obj_1 = new FileUpLoad;
//añadirmos la opción para la creación de directorios
//especificando los permisos que le asignaremos
$obj_1->CrearDirectorios(0777);
//establecemos el directorio dónde subiremos las fotos
//damos por hecho que la variable $id ya la habíamos obtenido previamente
$obj_1->EstableceDirectorio("imagenes/$ult_id/");
//en el caso de que el archivo exita lo reombramos
$obj_1->SiArchivoExiste(2);
//declaramos los tamaños mayor y menor (en kb) para cada archivo a subir
$obj_1->PesoMaximo(250);
// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$obj_1->subir('Foto1', 0773,"$nombre1");
$obj_1->subir('Foto2', 0773,"$nombre2");
$obj_1->subir('Foto3', 0773,"$nombre3");
$obj_1->subir('Foto4', 0773,"$nombre4");
$obj_1->subir('Foto5', 0773,"$nombre5");
$obj_1->subir('Foto6', 0773,"$nombre6");
$obj_1->subir('Foto7', 0773,"$nombre7");
$obj_1->subir('Foto8', 0773,"$nombre8");
$obj_1->subir('Foto9', 0773,"$nombre9");
$obj_1->subir('Foto10', 0773,"$nombre10");
bueno aqui esta el codigo a ver si podeis ayudarme
saludos