Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Montar un servidor de imagenes en tu foro phpBB3

PHP, HTML, CSS, JS, jQuery, etc.

0
No hay votos
 
Votos totales: 0

ator_18
Observador/a
Mensajes: 28
Registrado: 27 Oct 2008, 20:59

Montar un servidor de imagenes en tu foro phpBB3

#1

Mensaje por ator_18 »

Personalmente no me gusta tener que hacer que los miembros de mi foro deba recurrir a servidores como imageshack o photoimage. El uso de los atachment para las imagenes no termina de convencerme, aunque me agrada mas que la idea de imageshack o photoimage. Decidi personalizar mi propio servidor de imagenes para que los usuarios suban sus imagenes directamente a mi servidor. Puesto que tengo espacio y ancho de banda ilimitados, no me preocupo por el tamaño ni la cantidad de las imagenes.
La principal ventaja es que siempre puedes ir creando copias de seguridad de la carpeta con las imagenes de los usuarios y no depende de la velocidad o estabilidad de servidores externos. A mi me gusta depender lo menos posible de cualquier servicio que no se encuentre en mi servidor y al que yo no tenga acceso (por malas experiencias con alguno sobretodo).

Bien, voy a tratar de explicar como montar ese servidor e integrarlo con tu foro phpBB3, veras que es muy sencillo.

Primero debes descargar el archivo adjunto (Servidor de imagenes.tar), una vez descomprimido encuentras 1 archivo que se llama imagehosting.php. Teneis que editar ese archivo con los datos de vuestro foro, os copio las lineas que debeis editar:

Código: Seleccionar todo

$varpath = "http://URL DE LA RAIZ DE TU HOST/galeria/tmp/";
<title>TITULO DE TU VENTANA EN EL EXPLORADOR</title>
<td width="413" height="40" class="titulo">NOMBRE DE TU SITIO <img src="TU LOGO (AQUI VA UNA URL, ESTA SENTENCIA ES OPCIONAL Y PUEDE SER ELIMINADA)"></td>
<td class="text">Aloja tu imagen en nuestro servidor de NOMBRE DE TU SERVIDOR:</td>
Una vez rellenados vuestros datos guardais el archivo y subis la carpeta galeria a la raiz de vuestro host. Ahora abris el archivo iframe.php y poneis vuestra URL aqui:

Código: Seleccionar todo

<input type="button" onclick="abrir('http://URL DE TU HOST/galeria/imagehosting.php',0,0,0,0,0,0,0,600,455,60,20,1);" value="Subir imagen">
Una vez editado subimos el archivo iframe.php a la raiz de vuestro foro.

Ahora debemos editar el archivo TU_ESTILO_/template/posting_body.html y buscamos:

Código: Seleccionar todo

		<table cellpadding="1">
		<!-- IF S_BBCODE_ALLOWED -->
			<tr>
				<td><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /></td>
				<td class="gen">{L_DISABLE_BBCODE}</td>
			</tr>
		<!-- ENDIF -->
Ahora debemos añadir esta linea antes del texto buscado:

Código: Seleccionar todo

<iframe src="/foro/iframe.php" scrolling="no" allowtransparency="true" frameborder="0" width="140" height="35"></iframe>
Actualizais la plantilla y a funcionar. Cuando escribais un mensaje en el foro os aparecera un boton con la opcion de subir imagen. Una vez pulsado se abrira una nueva ventana para seleccionar la imagen ... Muestro capturas
Imagen
Imagen
Imagen
Adjuntos
Servidor de imagenes.tar
(40 KiB) Descargado 353 veces


Avatar de Usuario
AMateos
Ex Staff
Mensajes: 132
Registrado: 05 Jul 2006, 02:09
Género:
Edad: 30

Re: Montar un servidor de imagenes en tu foro phpBB3

#2

Mensaje por AMateos »

Excelente tutorial. Muchas gracias por compartirlo con nosotros :)
Nicalia | Hosting España de alta calidad.

Hosting Individual & Multisitio, VPS administrados y servidores dedicados
ator_18
Observador/a
Mensajes: 28
Registrado: 27 Oct 2008, 20:59

Re: Montar un servidor de imagenes en tu foro phpBB3

#3

Mensaje por ator_18 »

Importante:
Se me olvido deciros que la carpeta tmp que se encuentra dentro de galeria debe tener una mascara de permisos 777 (rwxrwxrwx)
thejerry007
Miembro
Mensajes: 247
Registrado: 01 Abr 2008, 16:26
Género:
Edad: 36

Re: Montar un servidor de imagenes en tu foro phpBB3

#4

Mensaje por thejerry007 »

gracias esta interesante:)
URL : http://www.cazawarez.com
Template(s) : 1thank_green Modificado
MOD(s) installed :
Spoiler
Automod
STK
Almsamim WYSIWYG editor for phpBB3
Database Optimize & Repair Tool
Facebook Like button (iFrame)
Genders Detalles
Last Posts Titles
Prime Instant Redirect
Prime Links
Prime Login Return
Prime Quick Login
Prime Quick Reply
ReIMG Image Resizer
Share Topic
View your topics
phpBB SEO Related Topics
phpBB : Phpbb seo Premod 3.0.8
Test User: test pass: 123456
Server : Pago Linux
Draude
Observador/a
Mensajes: 38
Registrado: 07 Mar 2008, 00:22
Género:
Edad: 52

Re: Montar un servidor de imagenes en tu foro phpBB3

#5

Mensaje por Draude »

URL: http://massissosdelgarraf.com" onclick="window.open(this.href);return false;
Versión phpBB: phpBB3 (3.0.4)
MODs Instalados: Botones con imagenes, Separar categorías index subsilver2, Genders 1.0.1, AJAX Chat 2.0.0 Beta, Text hit counter, 1.0.1, Page Title Number MOD.
Plantilla(s) usada(s): subsilver (principal) y prosilver2
Servidor: Xartra
Actualización desde otra versión: Si (de la 3.0.3 a 3.0.4)
Conversión desde otro sistema de foros: No

Perdona si me equivoco, pero he estado probando el codigo y me he encontrado con esto:

He probado el codigo y lo primero que he visto, es que en la plantilla prosilver, se tenia que modificar el prosilver/template/posting_buttons.html y no el TU_ESTILO_/template/posting_body.html. He estado mirando por la red y si que he visto que otras plantillas lo tienen efectivamente en el posting_body.html.

Esto, de hecho es tribial, pero al ejecutarlo, me da un error. Es este que muestro. Podria tratarse de definar las variables action e image, pero me extrañaria.

Bueno, siento poner tantos problemas pero este sistema me gustaria implementarlo en mi foro.

Saludos.
Adjuntos
Pantallazo con el mensaje de error.
Pantallazo con el mensaje de error.
Error.jpg (49.05 KiB) Visto 4653 veces

Draude

http://eduardamell.com
http://massissosdelgarraf.com
PHPBB Versión: 3.0.7 PL1 (actualizada de la 3.0.7)
Servidor: Windows.
Versión PHP del servidor: 5.2.0.

Mod's en massissosdelgarraf.com:
Ajax Chat 2.0.0, Gender, (Topic) Post Rating System, Rank Page 1.0.3, Page Title Number MOD, Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes.

Mod's en eduardamell.com:: Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes..
ator_18
Observador/a
Mensajes: 28
Registrado: 27 Oct 2008, 20:59

Re: Montar un servidor de imagenes en tu foro phpBB3

#6

Mensaje por ator_18 »

En primer lugar lamento el error de la plantilla, lo tengo instalado en mi plantilla mile100 y lo probe en prosilver para hacer una prueba y todo fue correcto y funcionando ok, pero se me paso que el archivo se llamaba distinto, gracias por comentarlo Draude.

¿Podrias copiarmelo entero tu imagehosting.php editado y le echo un ojo?. Revisa que todas las sentencias estan correctamente cerradas.
Draude
Observador/a
Mensajes: 38
Registrado: 07 Mar 2008, 00:22
Género:
Edad: 52

Re: Montar un servidor de imagenes en tu foro phpBB3

#7

Mensaje por Draude »

Ok, aquí te lo pongo.

Código: Seleccionar todo

<?php 
$varrand = substr(md5(uniqid(rand())),0,10);		
$varallw = array("image/bmp","image/gif","image/jpeg","image/pjpeg","image/png","image/x-png");
$varpath = "http://massissosdelgarraf.com/_PhotoGallery/tmp/";
$varstat = "";

if ($_POST["action"] == "upload") {
	if (is_uploaded_file($_FILES["imagen"]["tmp_name"])) {
		$varname = $_FILES["imagen"]['name'];
		$vartemp = $_FILES['imagen']['tmp_name'];
		$vartype = mime_content_type($vartemp);
		
		if (in_array($vartype, $varallw) && $varname != "") {
			$arrname = explode(".", $varname);
			$varname = $varrand.".".$arrname[1];
			if (copy($vartemp, "tmp/".$varname)) {
				$varpath = $varpath.$varname;
				$varstat = "ok";
			} else {
				$varstat = "Error al pujar l'arxiu";
			}
		} else {
			$varstat = "Arxiu no valit";
		}
	}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Massissos del Garraf</title>
<link href="cssupload.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="420" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="413" height="40" class="titulo">Massissos del Garraf <img src="http://massissosdelgarraf.com/w_PhotoArchive/_ImatgesWeb/Massissos_del_Garraf_Inicial_Mini3.gif"></td>
  </tr>
  <tr>
    <td class="text">Alotja la teva imatge en el nostre servidor MASSISSOS DEL GARRAF:</td>
  </tr>
  <tr>
  <form action="imagehosting.php" method="post" enctype="multipart/form-data">
    <td height="50" valign="top" class="text">
      <input name="imagen" type="file" class="casilla" id="imagen" size="35" />
      <input name="enviar" type="submit" class="boton" id="enviar" value="Subir Imagen" />
	  <input name="action" type="hidden" value="upload" />	  </td>
	</form>
  </tr>
  <?php if ($varstat == "ok") { ?>
  <tr>
    <td class="textinf"><strong>Confirmaci&oacute;:</strong><br>
	Arxiu publicat satisfactoriament. Pots utilitzar les següents opciones per enllaçar-lo:<br>
	<br>
	<strong>Enllaç BBCode per posar la imatge en el fòrum:</strong> <br>
	<input name='txt1' type='text' value='[img]<?php echo $varpath; ?>[/img]' size='60'>
	<br>
	<strong>Enllaç BBCode per crear diapositives de totes les imatges del teu post:</strong> <br>
	<input name='txt1' type='text' value='[slideshow=grupo1]<?php echo $varpath; ?>,Sin titulo[/slideshow]' size='60'>
	<br>
	<strong>Enllaç Directe: </strong><br>
	<input name='txt2' type='text' value='<?php echo $varpath; ?>' size='60'></td>
  </tr>
  <?php } else { ?>
	  <?php if ($varstat != "") { ?>
	  <tr>
		<td class="textinf"><strong>Error:</strong><br>
	    <?php echo $varstat; ?>&nbsp;</td>
	  </tr>
	  <?php } ?>
  <?php } ?>
</table>
<?php if ($varstat == "ok") { ?>
<p align="center"><img src="tmp/<?php echo $varname; ?>"></p>
<?php } ?>
<?php if ($_GET['image'] != "") { ?>
<p align="center"><img src="tmp/<?php echo $_GET['image']; ?>"></p>
<?php } ?>
</body>
</html>

Donde marca el error es esta:

Código: Seleccionar todo

if ($_POST["action"] == "upload") {
y esta:

Código: Seleccionar todo

<?php if ($_GET['image'] != "") { ?>

Draude

http://eduardamell.com
http://massissosdelgarraf.com
PHPBB Versión: 3.0.7 PL1 (actualizada de la 3.0.7)
Servidor: Windows.
Versión PHP del servidor: 5.2.0.

Mod's en massissosdelgarraf.com:
Ajax Chat 2.0.0, Gender, (Topic) Post Rating System, Rank Page 1.0.3, Page Title Number MOD, Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes.

Mod's en eduardamell.com:: Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes..
ator_18
Observador/a
Mensajes: 28
Registrado: 27 Oct 2008, 20:59

Re: Montar un servidor de imagenes en tu foro phpBB3

#8

Mensaje por ator_18 »

Me decanto a que tu version de php es antigua y no reconoce las variables del sistema _GET y _POST, porque tu imagehosting.php parece correcto.
_GET y _POST son dos variables globales predefinidas por el sistema PHP (creo que desde la version 4.1 mas o menos). Prueba a sustituir en el archivo lo siguiente:

_GET por HTTP_GET_VARS
_POST por HTTP_POST_VARS
Draude
Observador/a
Mensajes: 38
Registrado: 07 Mar 2008, 00:22
Género:
Edad: 52

Re: Montar un servidor de imagenes en tu foro phpBB3

#9

Mensaje por Draude »

Tienes toda la razón, es la 4.1. Pero todo y modificar lo que me comentas sigue con el mismo error. Parece como si te tubieran que definir como variables action y image. Realmente no entiende lo que sucede. Tengo web's realizadas en php y no me dan este problema y menos con este tipo de codigo.

No se que sucede. :(

Draude

http://eduardamell.com
http://massissosdelgarraf.com
PHPBB Versión: 3.0.7 PL1 (actualizada de la 3.0.7)
Servidor: Windows.
Versión PHP del servidor: 5.2.0.

Mod's en massissosdelgarraf.com:
Ajax Chat 2.0.0, Gender, (Topic) Post Rating System, Rank Page 1.0.3, Page Title Number MOD, Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes.

Mod's en eduardamell.com:: Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes..
Draude
Observador/a
Mensajes: 38
Registrado: 07 Mar 2008, 00:22
Género:
Edad: 52

Re: Montar un servidor de imagenes en tu foro phpBB3

#10

Mensaje por Draude »

Buscando en foros he encontrado la solución a esto, se trata de cambiar el codigo:

Código: Seleccionar todo

if ($_POST["action"] == "upload") {
Por este:

Código: Seleccionar todo

if(isset($_POST["action"]) == "upload"){
Y este:

Código: Seleccionar todo

<?php if ($_GET['image'] != "") { ?>
Por este:

Código: Seleccionar todo

<?php if (isset($_GET['image']) != "") { ?>
Pero sigo con problemas, al carrgar la imagen da otro error:

PHP Fatal error: Call to undefined function: mime_content_type() in C:\Domains\massissosdelgarraf.com\wwwroot\_PhotoGallery\imagehosting.php on line 12

Ahora estoy mirando que significa y donde esta el problema.

Gracias y sigo con ello.

Draude

http://eduardamell.com
http://massissosdelgarraf.com
PHPBB Versión: 3.0.7 PL1 (actualizada de la 3.0.7)
Servidor: Windows.
Versión PHP del servidor: 5.2.0.

Mod's en massissosdelgarraf.com:
Ajax Chat 2.0.0, Gender, (Topic) Post Rating System, Rank Page 1.0.3, Page Title Number MOD, Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes.

Mod's en eduardamell.com:: Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes..
ator_18
Observador/a
Mensajes: 28
Registrado: 27 Oct 2008, 20:59

Re: Montar un servidor de imagenes en tu foro phpBB3

#11

Mensaje por ator_18 »

En el codigo se incuyen sentencias y variables que quiza te den fallos por tu version de php. Si tienes acceso completo al servidor instala estas librerias:
http://es2.php.net/mime_magic" onclick="window.open(this.href);return false;

mime_content_type lo unico que hace es devolver el tipo de archivo que pasas como parametro. Intenta buscar alguna funcion que haga lo mismo para tu version de php o instalar las librerias que te pase.
Draude
Observador/a
Mensajes: 38
Registrado: 07 Mar 2008, 00:22
Género:
Edad: 52

Re: Montar un servidor de imagenes en tu foro phpBB3

#12

Mensaje por Draude »

Estaba mirando justamente esto que me has pasado. Ya he visto que el problema es de la versión del PHP. No te molesto más y me pongo no la actualización. Ya estoy en contacto con el soporte de mi dominio.

Gracias y saludos.

Draude

http://eduardamell.com
http://massissosdelgarraf.com
PHPBB Versión: 3.0.7 PL1 (actualizada de la 3.0.7)
Servidor: Windows.
Versión PHP del servidor: 5.2.0.

Mod's en massissosdelgarraf.com:
Ajax Chat 2.0.0, Gender, (Topic) Post Rating System, Rank Page 1.0.3, Page Title Number MOD, Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes.

Mod's en eduardamell.com:: Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes..
ator_18
Observador/a
Mensajes: 28
Registrado: 27 Oct 2008, 20:59

Re: Montar un servidor de imagenes en tu foro phpBB3

#13

Mensaje por ator_18 »

Averiguar el tipo de datos podrias hacerlo programando una funcion que te lea la cadena recibida desde el ultimo punto hasta el final (asi obtienes la extension). Puedes crear un array conteniendo los tipos de datos en funcion de la extension. Seria mas o menos lo que hace mime_content_type. La funcion hace lo siguiente:

mime_content_type('logo.gif') -> Devolveria image/gif
mime_content_type('index.php') -> Devolveria text/plain

Como ves a la funcion se le pasa un parametro tipo string y devuelve otro string. No seria muy complicado hacer una funcion parecida. Si tienes tiempo intentalo, no te puedo recomendar un manual de php para tu version, necesitarias uno un poco antiguo.

Un saludo y suerte!!.
ator_18
Observador/a
Mensajes: 28
Registrado: 27 Oct 2008, 20:59

Re: Montar un servidor de imagenes en tu foro phpBB3

#14

Mensaje por ator_18 »

He encontrado un codigo en internet que segun parece te crea la funcion de la que te hable, el codigo es el siguiente:
La fuente es es.php.net y su autor serkanyersen

Intentalo con ese codigo, ten encuenta que la funcion se llama get_mime y no mime_content_type, espero que te sea util.

Código: Seleccionar todo

<?
/**
 * Tries to get mime data of the file.
 * @return {String} mime-type of the given file
 * @param $filename String
 */
function get_mime($filename){
    preg_match("/\.(.*?)$/", $filename, $m);    # Get File extension for a better match
    switch(strtolower($m[1])){
        case "js": return "application/javascript";
        case "json": return "application/json";
        case "jpg": case "jpeg": case "jpe": return "image/jpg";
        case "png": case "gif": case "bmp": return "image/".strtolower($m[1]);
        case "css": return "text/css";
        case "xml": return "application/xml";
        case "html": case "htm": case "php": return "text/html";
        default:
            if(function_exists("mime_content_type")){ # if mime_content_type exists use it.
               $m = mime_content_type($filename);
            }else if(function_exists("")){    # if Pecl installed use it
               $finfo = finfo_open(FILEINFO_MIME);
               $m = finfo_file($finfo, $filename);
               finfo_close($finfo);
            }else{    # if nothing left try shell
               if(strstr($_SERVER[HTTP_USER_AGENT], "Windows")){ # Nothing to do on windows
                   return ""; # Blank mime display most files correctly especially images.
               }
               if(strstr($_SERVER[HTTP_USER_AGENT], "Macintosh")){ # Correct output on macs
                   $m = trim(exec('file -b --mime '.escapeshellarg($filename)));
               }else{    # Regular unix systems
                   $m = trim(exec('file -bi '.escapeshellarg($filename)));
               }
            }
            $m = split(";", $m);
            return trim($m[0]);
    }
}
?>
Draude
Observador/a
Mensajes: 38
Registrado: 07 Mar 2008, 00:22
Género:
Edad: 52

Re: Montar un servidor de imagenes en tu foro phpBB3

#15

Mensaje por Draude »

Creo que hay un problema con la configuración del servidor, ya que he verificado la versión del php y es la 4.4.5. Des de el release 4.3 se admite la función mime_content_type. Por esto me he puesto en contacto con ellos y espero una respuesta al respecto.

Tema a parte, he provado la función que me has pasado y va bien, aun no la he integrado. Ya te contare. Gracias otra vez.

Draude

http://eduardamell.com
http://massissosdelgarraf.com
PHPBB Versión: 3.0.7 PL1 (actualizada de la 3.0.7)
Servidor: Windows.
Versión PHP del servidor: 5.2.0.

Mod's en massissosdelgarraf.com:
Ajax Chat 2.0.0, Gender, (Topic) Post Rating System, Rank Page 1.0.3, Page Title Number MOD, Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes.

Mod's en eduardamell.com:: Board3 Portal (ultima versión), phpbb3 Gallery (ultima versión), cambio de los botones de BBCodes..

Volver a “🆘 Recursos Webmaster”