Enviar una imagen desde un directorio en pc a un servidor

Quisiera saber si me pueden ayudar con esto tengo varios días intentando y no hallo la solución. Tengo montada mi pag web con un portal en donde veo e ingreso cierta información. Todo funciona a la perfección menos el envío de las imágenes a una carpeta temporal de donde saco la ruta para guardarla en mi base de datos y luego imprimirla en pantalla. En mi ambiente loca me funciona a la perfección pero en el servidor no gurda las imágenes en la carpeta indicada.

Este es mi código de guardar imágenes:

/****IMAGEN****/
$folder = '/public_html/tmp/producto';
$Temporal = $_FILES['imagen']['tmp_name'];
$Imagen = $_FILES['imagen']['name'];
$destino = $folder.' / '.$Imagen; 
/**Mueve el archivo a una nueva carpeta**/
move_uploaded_file($Temporal, $Destino);

/**Guarda en base de datos**/

$resultado = mysql_query("INSERT INTO imagenes VALUES ('', '$nombreImagen', '$destino')");

1 respuesta

Respuesta

Intenta con esto

<?php if ((isset($_POST["enviado"])) && ($_POST["enviado"] == "form1")) {
for ($i = 0; $i < count($_FILES['archivo']['nombre']); $i++) {
echo "<strong>".$_FILES['archivo']['nombre'][$i]."</strong><br>";
if (($_FILES['archivo']['size'][$i]>102400) || ((end(explode(".", $_FILES['archivo']['nombre'][$i]))!="jpg") && (end(explode(".", $_FILES['archivo']['nombre'][$i]))!="png") && (end(explode(".", $_FILES['archivo']['nombre'][$i]))!="doc") && (end(explode(".", $_FILES['archivo']['nombre'][$i]))!="docx") && (end(explode(".", $_FILES['archivo']['nombre'][$i]))!="pdf")))
echo "Solo ficheros de 100Kb como maximo y con extension .jpg, png, doc, docx y pdf<br>";
else
{
//Asignamos nombre del fichero quee stamos subiendo:
$nombre_archivo = $_FILES['archivo']['nombre'][$i];
//Compruebo que la carpeta no existe, y si no, la creo
if (!is_dir("images/armarios/".$_POST["id"]))//cambiar por el nombre del armario
{
mkdir("images/armarios/".$_POST["id"]); //cambiar por el nombre del armario
}
//Compruebo que la carpeta del album, no existe, y si no, la creo
if (!is_dir("images/armarios/".$_POST["id"]))//quitar id album y cambiar sesion por variable del armario
{
mkdir("images/armarios/".$_POST["id"]); //quitar id album y cambiar sesion por variable del armario
}
//Compruebo que el fichero que subo, no existe, y si no, le cambiaré el nombre
if (is_file("images/armarios/".$_POST["id"]."/".$nombre_archivo))
{//quitar id album y cambiar sesion por variable del armario
//Ese nombre ya existe en tu server
echo "Atencion, fichero no subido, esta duplicado.<br>";
}
else
{
move_uploaded_file($_FILES['archivo']['tmp_nombre'][$i], "images/armarios/".$_POST["id"]."/".$nombre_archivo);
//Ese nombre ya existe en tu server
echo "OK<br>";
fn_InsertarImagenesAlbum($_POST["id"], $nombre_archivo);
}
}
}
?>
<a href="javascript:self.close();">Cerrar ventana</a>

¿Oscar gracias por tu ayuda pero podrías emplicarme un poco más sobre ese código . De donde sacaste esto "form1"?

El código que te envió es un popup.

Lo llamas de un formulario previo.

El cual consta de varios campo de información y un campo oculto.

Que es el que llevo al popup para dar el nombre a la carpeta que se debe crear en el servidor

Ok ¡Gracias! voy a probarlo a ver que tal.. 

no funciona

Claro que funciona.

Este código lo utilizo en más de 8 aplicaciones diferentes.

Me puedes enviar lo que tienes para saber donde es el error.

Este es mi código final

¿

<?php

if ((isset($_POST["submit"])) && ($_POST["submit"] == "form")) {
for ($i = 0; $i < count($_FILES['imagen']['name']); $i++) {
if (($_FILES['imagen']['size'][$i] > 102400) || ((end(explode(".", $_FILES['imagen']['name'][$i]))!="jpg") && (end(explode(".", $_FILES['imagen']['name'][$i]))!="png") )) {
//variables
$Imagen = $_FILES['imgen']['name'][$i];
$folder = "/home/anna/public_html/tmp/productos/";
$destino = $folder.' / '.$Imagen;
$nombreProducto = $_POST['nombreProducto'];
$tipoProducto = $_POST['tipoProducto'];
$style = $_POST['style'];
$acabado = $_POST['finish'];
if (is_file($folder."/".$Imagen)) {
move_uploaded_file($_FILES['imagen']['tmp_name'][$i], $destino);
if (isset($_POST['checkbox']) ){
$value = implode("<br>", $_POST['checkbox']);
$resultadoVigente = mysql_query("INSERT INTO nuevoproducto VALUES ('', '$nombreProducto', '$tipoProducto', '$style', '$acabado', '$destino', '$value')");
}
}
}
}
?>

Puedes enviarme un print de tu formularios principal.

El mio es establecido a si

en el link subir imagenes llamo mi popup

Este sube al servidor e inserta en mi base de datos.

Esto debería de subirme la imagen a la carpeta en mi servidor hosting para guardar la ruta de la imagen en mi base de datos y al llamarla me imprima en pantallee la imagen.

¿En tu formulario estas ingresando información nueva?

O ya estas trayendo la información. Previamente.

Como te explique de mi form tengo un campo oculto id que es que lleva en mi caso el id de las placas de los vehículos.

El popup sube crea la carpeta, sube los archivos y llama la función del insert donde guardo el nombre de la foto y el nombre de la carpeta para su posterior visualización

Si estoy ingresando información nueva

Ya tengo la carpeta montada en el servidor hosting lo que quiero es que me ingrese las imágenes a esa carpeta para que las pueda imprimir en pantalla y no logro hacerlo.

Dame tu correo :

Y hay te envío mi skype para hacer un poco más ágil el tema

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas