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:
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.//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);
Gracias
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)