Bienvenido, Invitado
Nombre de Usuario Contraseña: Recordarme

Creando y copiando archivos con php?
(1 viendo) (1) Invitado
  • Página:
  • 1

TEMA: Creando y copiando archivos con php?

Creando y copiando archivos con php? hace 1 año, 6 meses #16529

Ultimamente he estado importando las imagenes de los usuarios de mi anterior sitio disponiendo de la sgte informacion.

( id_foto (consecutivo), imagen_foto (ruta por Ej..
gallery/fotos_usuarios/Picture 007.jpg), id_usuario)

lo que quiero lograr es importar estas imagenes a joomsocial por lo cual
tengo que proceder a crear el album de fotos y luego almacenar la informacion de las fotos incluyendo la creacion de las carpetas para luego copiar las imagenes.

por el momento solo tengo una leve idea.

while($fila = mysql_fetch_array($sql))
{
$id=$fila['id_usuario'];
$foto=$fila['imagen_foto'];
$max=strlen($foto);
$img=substr($foto,22,$max);
$rest=$max - 4;
$img2=substr($foto,22,$rest);
$ruta="images/photos/$id/";
 
//hasta aqui lo normal puse algunos datos extras por si algo.
 
//y empezamos con lo bueno
 
//lo primero que hago es crear el album de fotos
 
mysql_query("insert into jos_community_photos_albums (photoid,creator,name,description,permissions,path,type) Values ('$id', '$id', 'Mis fotos', 'Mis Fotos Personales', '0', '$ruta', 'user')", $link);
 
/* por cierto aun no esto muy seguro de implementar el id como el album de fotos igual resibo sugerencias.
 
aqui tengo el primer inconveniente ya que se crean dos albunes pero es debido ala bd demas que tengo que validar en caso de que se repita el id pero no logro hacerlo */

 



//la verdad no se que secuencia tiene ese campo photoid si es 0 es por que el album esta vacio pero cuando se sube una imagen el cambia el valor pero no da en forma de secuencia. 
 
//aqui cojo el id del album claro que si resuelvo lo de arriba demas que esto sobra
 
$sql2=mysql_query ("Select id From jos_community_photos_albums Where creator='$id'", $link);
$id_album=mysql_result();
 
//creo el directorio con el id del creador del album
 
mkdir("images/photos/$id/",0777,true);
 
//el segundo id equivale al album en si
mkdir("images/originalphotos/$id/$id/",0777,true);
 
//ya paso a insertar las imagenes
 
//sigo pensando como
mysql_query("insert into jos_community_photos (albumid,caption,published,creator,permissions,image,thumbnail,original,filesize,storage) values ()", $link);
 
//y el ultimo paso seria copiar de la carpeta de origen a la de destino
 
//tambien tengo duda si se procede de esta forma.
copy("$foto","images/photos/$id/$id_album");
}
 
// y si sale bien el proceso
 
echo"Tranferencia completa";


espero me puedan ayudar y gracias por su tiempo.
  • enig
  • DESCONECTADO
  • Ayudante
  • Temas: 142
  • Karma: 4
Última Edición: hace 1 año, 6 meses Por JoniJnm.

Re: Creando y copiando archivos con php? hace 1 año, 6 meses #16550

Juntando tus cosas sería algo como:
$users = array();
$albums = array();
$original_path = 'gallery'.DS.'fotos_usuarios'.DS;
$aux = strlen($original_path); //23
$path = dirname(__FILE__); //este archivo debe estar al lado del index.php de joomla
DEFINE("DS", DYRECTORY_SEPARATOR);
 
while($fila = mysql_fetch_array($sql))
{
$user = $fila['id_usuario'];
$foto = $fila['imagen_foto'];
$img = substr($foto,$aux);
$md5 = md5($img);
$ext = substr($img,-3);
 
if (!in_array($user, $users)) {
$users[] = $user;
mysql_query("insert into jos_community_photos_albums (photoid,creator,name,description,permissions,path,type) Values (0, $user, 'Mis fotos', 'Mis Fotos Personales', '0', '$ruta', 'user')", $link);
mkdir($path.DS."images".DS."photos".DS.$user.DS,0777,true);
mkdir($path.DS."images".DS."originalphotos".DS.$user.DS,0777,true);
}
 
$sql2=mysql_query ("Select id From jos_community_photos_albums Where creator=$user", $link);
$id_album=mysql_result();
if (!in_array($id_album, $albums))
$albums[] = $id_album;
 
if (!file_exits($path.DS."images".DS."photos".DS.$user.DS.$id_album.DS)) {
mkdir($path.DS."images".DS."photos".DS.$user.DS.$id_album.DS,0777,true);
mkdir($path.DS."images".DS."originalphotos".DS.$user.DS.$id_album.DS,0777,true);
}
 
mysql_query("insert into jos_community_photos (albumid,caption,published,creator,permissions,image,thumbnail,original,filesize,storage)
values ($id_album,'"
.substr($img,0,-4)."',1,$user,0,
'images/photos/$user/$id_album/$md5.$ext','images/photos/$user/$id_album/thumb_$md5.$ext','images/originalphotos/$user/$id_album/$md5.$ext',
"
.filesize($path.DS.$original_path.$img).",'file')", $link);
 
copy($path.DS.$original_path.$img, $path."images".DS.'photos'.DS.$user.DS.$id_album.DS.$md5.'.'.$ext);
copy($path.DS.$original_path.$img, $path."images".DS.'photos'.DS.$user.DS.$id_album.DS.'thumb_'.$md5.'.'.$ext);
copy($path.DS.$original_path.$img, $path."images".DS.'originalphotos'.DS.$user.DS.$id_album.DS.$md5.'.'.$ext);
}
 
foreach ($albums as $album) {
$sql = mysql_query('SELECT id FROM community_photos WHERE albumid='.$album.' LIMIT 1', $link);
$fila = mysql_fetch_array($sql);
mysql_query('UPDATE jos_community_photos_albums SET photoid='.$fila['id'].' WHERE id='.$album);
}
 
echo "Tranferencia completa";

Prueba a ver qué tal, pero el thum no se creará y tampoco se redimensionará la imagen por defecto, seran como la original
  • JoniJnm
  • DESCONECTADO
  • Administrador
  • Temas: 4167
  • Karma: 144
Última Edición: hace 1 año, 6 meses Por JoniJnm.

Re: Creando y copiando archivos con php? hace 1 año, 5 meses #16577

Gracias
  • enig
  • DESCONECTADO
  • Ayudante
  • Temas: 142
  • Karma: 4
Última Edición: hace 1 año, 5 meses Por enig.

Re: Creando y copiando archivos con php? hace 1 año, 5 meses #16586

lo estuve probando pero me sale estos errores

Warning: mysql_result() expects at least 2 parameters, 0 given in C:\xampp\htdocs\Joomla\Fotos.php on line 49

Fatal error: Call to undefined function file_exits() in C:\xampp\htdocs\Joomla\Fotos.php on line 54

49 $id_album=mysql_result();

if (!in_array($id_album, $albums))
$albums[] = $id_album;

54 if(!file_exits($path.DS."images".DS."photos".DS.$user.DS.$id_album.DS)){
mkdir($path.DS."images".DS."photos".DS.$user.DS.$id_album.DS,0777,true);
mkdir($path.DS."images".DS."originalphotos".DS.$user.DS.$id_album.DS,0777,true);
}
  • enig
  • DESCONECTADO
  • Ayudante
  • Temas: 142
  • Karma: 4

Re: Creando y copiando archivos con php? hace 1 año, 5 meses #16598

Línea 49 por
$id_album = mysql_fetch_array($sql2);
$id_album=$id_album['id'];

file_exits por
file_exists

Incluso con eso puede que siga sin ir, tienes que ir mirandolo
  • JoniJnm
  • DESCONECTADO
  • Administrador
  • Temas: 4167
  • Karma: 144

Re: Creando y copiando archivos con php? hace 1 año, 5 meses #16602

listo gracias

Ya lo resolvi solo me falta resolver este problema pero por lo menos ya funciona gran parte del algoritmo


Warning: copy(C:\xampp\htdocs\Joomla\gallery\fotos_usuarios\DSC00096.JPG) [function.copy]: failed to open stream: No such file or directory in C:\xampp\htdocs\Joomla\Fotos.php

creo que es por que falta validar cuando una imagen no se encuentra en la carpeta de origen pero no estoy seguro......
  • enig
  • DESCONECTADO
  • Ayudante
  • Temas: 142
  • Karma: 4
Última Edición: hace 1 año, 5 meses Por enig.
  • Página:
  • 1
Página generada en: 0.61 segundos