Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/class_language.php on line 201
Descargar imagenes al servidor desde URL
Páginas (2): 1 2   
DarkFinder   12 Jan, 2013, 9:14 pm
#1
Verán ando viendo la manera de descargar una imagen a partir del ingreso de la URL por medio de un formulario, pero ya me quede un poco trabado, esto lo quiero hacer para un foro que ando desarrollando, pero mas allá de conocer del sistema MyBB esto requiere conocimientos mas de PHP por eso lo colocó esta sección.

Pues por ahi tengo algún error pero no he logrado encontrarlo, de hecho es una función de un plugin que yo mismo ando desarrollando, les deo la función en la cual tengo el error

Código PHP:
<?php 
function portalimg_upload($input_portalimg, $img_error == FALSE) {
require_once
MYBB_ROOT."inc/functions_upload.php";
$input_portalimg = preg_replace("#script:#i", "", $input_portalimg);
$ext = get_extension($input_portalimg);
if(
preg_match("#^(gif|jpg|jpeg|jpe|bmp|png)$#i", $ext)) {
$path = $mybb->settings['uploadspath']."/posts";
$filename = "img_post_".md5(random_str(8)).".".$ext;
$file = upload_file(fetch_remote_file(basename($input_portalimg)), $path, $filename);
if(
$file['error']) {
@
unlink($path."/".$filename);
$img_error == TRUE;
}
if(!
file_exists($path."/".$filename)) {
@
unlink($path."/".$filename);
$img_error == TRUE;
}
}
else {
$img_error == TRUE;
}
$portal_array = array(
"error" => $img_error,
"src" => $filename,
);
return
$portal_array;
}
Última modificación: 12 Jan, 2013, 9:57 pm por cuperd1934.
HSSWebs   12 Jan, 2013, 10:31 pm
#2
No haz tratado hacer con la función file_get_contents?
Es decir leer el contenido de la imagen, asignarle el tipo de archivo, en este caso .jpg, .png, .gif, etc..
Y luego crear un nuevo archivo(imagen) con la ruta que le pongas..

Es lo que se me ocurre o como lo haría yo, aunque no he probado nada.
DarkFinder   13 Jan, 2013, 4:03 pm
#3
Ya lo probé así como me dices y ya me funciona el problema que ahora tengo es que la imagen la guarda en la raíz del foro y no me deja moverla a una carpeta diferente

Enviado desde mi GT-S5360L
HSSWebs   13 Jan, 2013, 4:04 pm
#4
Ni asignándole la ruta? La verdad es raro, ya que estas creando un nueva imagen a partir de la que lees desde la URL.
DarkFinder   13 Jan, 2013, 5:18 pm
#5
Al rato subo el código PHP, ando en el móvil

Enviado desde mi GT-S5360L
DarkFinder   13 Jan, 2013, 8:36 pm
#6
Este es el nuevo código, como les comentaba ya podía hacer la descarga del archivo pero no puedo hacer que el archivo se guarde en la carpeta que yo le especifico

Código PHP:
<?php 
define
("FILE_PUT_CONTENTS_ATOMIC_TEMP", $mybb->settings['uploadspath']."/posts");
define("FILE_PUT_CONTENTS_ATOMIC_MODE", 0777);

function
portalimg_upload($input_img, $img_error = FALSE) {
$input_img = preg_replace("#script:#i", "", $input_img);
$ext = get_extension($input_img);
$input_img = file_get_contents($input_img);
if(
preg_match("#^(gif|jpg|jpeg|jpe|bmp|png)$#i", $ext)) {
$filename = random_str(10)."_image.".$ext;
$temp = md5(time().rand());
$f = @fopen($temp, 'wb');
if (!(
$f = @fopen($temp, 'wb'))) {
$img_error = TRUE;
}
fwrite($f, $input_img);
fclose($f);
if (!@
rename($temp, $filename)) {
@
unlink($filename);
@
rename($temp, $filename);
@
chmod($filename, FILE_PUT_CONTENTS_ATOMIC_MODE);
if(
copy(MYBB_ROOT.$filename, FILE_PUT_CONTENTS_ATOMIC_TEMP."/".$filename)) {
@
unlink(MYBB_ROOT.$filename);
}
}
}
else {
$img_error == TRUE;
}
$portal_array = array(
"error" => $img_error,
"src" => $filename,
);
return
$portal_array;
}
HSSWebs   13 Jan, 2013, 8:44 pm
#7
Y agregando la ruta completa? Es decir algo así:

if(copy(MYBB_ROOT.$filename, MYBB_ROOT.FILE_PUT_CONTENTS_ATOMIC_TEMP."/".$filename))
DarkFinder   13 Jan, 2013, 9:19 pm
#8
Ya lo he probado y tampoco funciona amigo Sad
DarkFinder   14 Jan, 2013, 1:27 pm
#9
Después de tanto analizar y investigar al fin lo he logrado, asi que ya pueden cerrar este hilo, gracias Steeep por darme la idea para resolver mi problema, te va +1 Big Grin
Omar G.   14 Jan, 2013, 9:50 pm
#10
Idealmente deberías colocar la solución a tu problema.
Páginas (2): 1 2   
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.