
19/01/2010, 14:48
|
| | Fecha de Ingreso: agosto-2009 Ubicación: Girona
Mensajes: 14
Antigüedad: 15 años, 7 meses Puntos: 0 | |
Ayuda con URL de imagen Buenas a todos,
Tengo un componente para Joomla que me deja subir una imagen para usarla en él. Para no consumir mi ancho de banda, quiero que sea posible que use una URL de una imagen en un servidor externo en vez de usar la imagen que yo suba desde mi ordenador.
El trozo referente a la imagen en el archivo es el siguiente:
Código:
//screen
if($screen['name'] != ""){
$newscreenname = str_replace(".gif", "", $screen['name']);
$newscreenname = str_replace(".jpg", "", $newscreenname);
$newscreenname = str_replace(".jpeg", "", $newscreenname);
$newscreenname = str_replace(".png", "", $newscreenname);
$newscreenname = str_replace(".", "", $newscreenname);
$newscreenname = str_replace(" ", "", $newscreenname);
$newscreenname = str_replace("-", "", $newscreenname);
$newscreenname = "screen_" . strtolower(date('dMY_His')) . "_" . strtolower($newscreenname); //screen_ + date + hour + original filename
$uploadedscreen = $screen['tmp_name'];
if($screen['type'] == "image/gif"){
$newscreenname = $newscreenname . ".gif";
}else if($screen['type'] == "image/png"){
$newscreenname = $newscreenname . ".png";
}else if($screen['type'] == "image/jpg" || $screen['type'] == "image/jpeg"){
$newscreenname = $newscreenname . ".jpg";
}else{
$mainframe->redirect("index.php?option=com_tpshowcase&type=showcases", JText::_('TP_ERROR_FILEEXT_NOTVALID'));
}
$newfilepath_screen = JPath::clean($pathtosave.strtolower($newscreenname));
JFile::move($screen['tmp_name'], $newfilepath_screen);
@rename($filepathscreen, $newfilepath_screen); // renamefile
@chmod($newfilepath_screen, 0755); // change chmod
}
//save to database
if(!$id){
$q = "INSERT INTO #__tpshowcase_showcase VALUES('','$name','$email','$url','$title','$newthumbname','$newscreenname','$desc','$tags','$date','$status')";
}else{
$tname = (isset($thumb['name']) && $thumb['name'] != "") ? " filename_thumb='" . $newthumbname . "', " : "";
$sname = (isset($screen['name']) && $screen['name'] != "") ? " filename_screen='" . $newscreenname . "', " : "";
$q = "UPDATE #__tpshowcase_showcase SET fullname = '$name', email = '$email', url = '$url', title = '$title', $tname $sname description = '$desc', tag = '$tags', status = '$status' WHERE id=" . $db->Quote($id);
}
$db->setQuery($q);
$db->Query();
$mainframe->redirect("index.php?option=com_tpshowcase&type=showcases", $msg);
}
function canUpload( $file, &$err ){
jimport('joomla.filesystem.file');
if($file['name'] !== JFile::makesafe($file['name'])){
$err = JText::_('TP_ERROR_FILENAME_NOTVALID!');
return false;
}
$format = strtolower(JFile::getExt($file['name']));
$allowable = explode( ',', "gif,jpg,jpeg,png");
$ignored = explode(',', "bmp,exe,doc,zip,rar,xls,swf,html,html,php,asp,ppt,bat,pdf");
if(!in_array($format, $allowable) && !in_array($format,$ignored)){
$err = JText::_('TP_ERROR_FILEEXT_NOTVALID');
return false;
}
$maxSize = 1000000; //max 1MB
if($maxSize > 0 && (int) $file['size'] > $maxSize){
$err = JText::_('TP_ERROR_FILEMAXSIZE_NOTVALID');
return false;
}
$imginfo = null;
if(true){
$images = explode( ',', "gif,jpg,jpeg,png");
if(($imginfo = getimagesize($file['tmp_name'])) === FALSE){
$err = JText::_('TP_ERROR_FILENAME_NOTVALID');
return false;
}
}
$xss_check = JFile::read($file['tmp_name'],false,256);
Sé muy poco de Php y no sé ni por dónde empezar, ¿Me echáis un cable? Creo que va a ser complicado ésto, porque en primer lugar tendría que saber si habría que modificar la base de datos, en caso que lo veáis especialmente complicado no os preocupéis porque voy a tener que buscar una alternativa a ese sistema para acabar mi proyecto.
Gracias |