Jump to content

Ayuda Por favor


Recommended Posts

Bueno primero que nada decirles que estoy aprendiendo un poco de php y bueno me tope con este problema, quiero subir multiples imagenes a un servidor en este caso 000webhost, bueno resulta que buscando en inet encontre un script, con el formulario y php, estos los modifique ya el formulario esta listo, agregue campos input gracias a javascript, pero a la hora de procesar los archivos con el php solo me sube la primera imagen que elijo y no se porque no me sube la segunda, claramente si no sube la segunda es por que de ahi en adelante no seguira subiendo xdxdxd!, no se si tengo algo malo con el codigo del php o que ojala me puedan ayudar, aca les dejo el html:

 

FORMULARIO:

 

<html>
<head>
</head>
<body>

<div id="imCel8_00">
<div id="imCel8_00_Cont">
    <div id="imObj8_00">

<script language="javascript">
var upload_number = 2;
function addFileInput() {
    var d = document.createElement("div");
    var file = document.createElement("input");
    file.setAttribute("type", "file");
    file.setAttribute("name", "archivos"+upload_number);
    d.appendChild(file);
    document.getElementById("moreUploads").appendChild(d);
    upload_number++;
}
function setBlock() {
   document.getElementById('moreLink').style.display = 'block';
}
</script>


<script type="text/javascript"><!--
function ChkFrm_8_00(oForm)
{
sAlert1 = "Error en el dato ingresado! ";
sAlert2 = "Direccion de email incorrecta! ";
sAlert3 = "No ingreso el nombre de la Imagen!";
sAlert4 = "No adjunto la imagen!";

if (oForm.Itm_8_00_1.value == "")
{
  oForm.Itm_8_00_1.focus();
  alert(sAlert1 + "'Nombre y Apellido'");
  return (false);
}
if (oForm.Itm_8_00_2.value == "" || oForm.Itm_8_00_2.value.indexOf ('@', 0) < 1 || oForm.Itm_8_00_2.value.indexOf ('.', 0) < 1)
{
  oForm.Itm_8_00_2.focus();
  alert(sAlert2 + "'Email'");
  return (false);
}
if (oForm.Itm_8_00_3.value == "")
{
  oForm.Itm_8_00_3.focus();
  alert(sAlert1 + "'Telefono'");
  return (false);
}
if (oForm.Itm_8_00_4.value == "")
{
  oForm.Itm_8_00_4.focus();
  alert(sAlert1 + "'Cantidad'");
  return (false);
}
if (oForm.Itm_8_00_5_sub_1.checked == false && oForm.Itm_8_00_5_sub_2.checked == false)
{
  oForm.Itm_8_00_5_sub_1.focus();
  alert(sAlert1 + "'Despacho'");
  return (false);
}
if (oForm.Itm_8_00_6.value == "")
{
  oForm.Itm_8_00_6.focus();
  alert(sAlert1 + "'Domicilio'");
  return (false);
}
if (oForm.Itm_8_00_7.value == "")
{
  oForm.Itm_8_00_7.focus();
  alert(sAlert1 + "'Ciudad'");
  return (false);
}
if (oForm.Itm_8_00_8.value == "")
{
  oForm.Itm_8_00_8.focus();
  alert(sAlert1 + "'Comentarios'");
  return (false);
}
if (oForm.Itm_8_00_9.value == "")
{
  oForm.Itm_8_00_9.focus();
  alert(sAlert3 + "'Imagen'");
  return (false);
}
if (oForm.archivo.value == "")
{
  oForm.archivo.focus();
  alert(sAlert4 + "'Imagen'");
  return (false);
}
return (true);
}
//--></script>
<form action="disenoconcampos.php" method="post" enctype="multipart/form-data" onsubmit="return ChkFrm_8_00(this)">
<div>
<label for="Itm_8_00_1">
Nombre y Apellido*:<br />
    <input class="imInput imInput_0" type="text" name="Itm_8_00_1" id="Itm_8_00_1" />
</label>
</div>
<div>
<label for="Itm_8_00_2">
Email*:<br />
    <input class="imInput imInput_2" type="text" name="Itm_8_00_2" id="Itm_8_00_2" />
</label>
</div>
<div>
<label for="Itm_8_00_3">
Telefono*:<br />
    <input class="imInput imInput_2" type="text" name="Itm_8_00_3" id="Itm_8_00_3" onkeypress="return imKeyFilter(1,event);" />
</label>
</div>
<div>
<label for="Itm_8_00_4">
Cantidad*:<br />
    <input class="imInput imInput_3" type="text" name="Itm_8_00_4" id="Itm_8_00_4"maxlength="2" onkeypress="return imKeyFilter(0,event);" />
</label>
</div>
<div>
Despacho*:<br />
<label for="Itm_8_00_5_sub_1">
    <input type="radio" name="Itm_8_00_5" id="Itm_8_00_5_sub_1" value="A Domicilio" />A Domicilio<br />
</label>
<label for="Itm_8_00_5_sub_2">
    <input type="radio" name="Itm_8_00_5" id="Itm_8_00_5_sub_2" value="Retira" />Retira
</label>
</div>
<div>
<label for="Itm_8_00_6">
Domicilio*:<br />
    <input class="imInput imInput_0" type="text" name="Itm_8_00_6" id="Itm_8_00_6" />
</label>
</div>
<div>
<label for="Itm_8_00_7">
Ciudad*:<br />
    <input class="imInput imInput_2" type="text" name="Itm_8_00_7" id="Itm_8_00_7" />
</label>
</div>
<div>
<label for="Itm_8_00_11">
Comuna:<br />
    <input class="imInput imInput_2" type="text" name="Itm_8_00_11" id="Itm_8_00_11" />
</label>
</div>
<div>
<label for="Itm_8_00_8">
Comentarios*:<br />
    <textarea class="imInput imInput_0" name="Itm_8_00_8" id="Itm_8_00_8" rows="10" cols="15" style="height: 150px; "></textarea>
</label>
</div>
<div class="imAlign_center">
<label for="Itm_8_00_9">
Nombre de la imagen a adjuntar*:<br />
    <input class="imInput imInput_5" type="text" name="Itm_8_00_9" id="Itm_8_00_9" />
</label>
</div>
<div class="imAlign_center" id="adjuntos">
<label for="Itm_8_00_10">
Añadir su Imagen*:<br />
    <input class="imInput" name="archivos[]" type="file" class="casilla" id="archivos" size="35" onchange="setBlock();" />
<div id="moreUploads"></div>
<div id="moreLink" style="display:none;">
<a href="java script:addFileInput();">Agregar otro Archivo</a>
</div>
</label>
</div>
    <input class="imFormButton" type="submit" name="enviar" id="enviar" value=" Enviar " />
      <input name="action" type="hidden" value="upload" />
    <input class="imFormButton" type="reset" value=" Limpiar " />
</div>
</form>
<div class="imAlign_center">
<label for="estado">
Estado de Envio*:<br />
    <td class="text" style="color:#990000"><?php echo $status; ?></td>
</label>
</div>
    </div>
</div>
</div>
</body>
</html>

 

PD: lo que quize hacer en el php es subir las imagenes a una carpeta al servidor, como ya les dije sube solo la primera, luego cree un contador $error q este en caso de producirse algun error aumentara, luego si no hubo ningun errror y subio todas las imagenes recien envia un mail a mi correo con los datos del formulario.

 

 

disenoconcampos.php:

 

<?php 
$error = 0;

$status = "";
$estado = 1;

if ($_POST["action"] == "upload") {
    //Vemos si fue defino el arreglo  'archivos'
    if (isset ($_FILES["archivos"])) {
        //de ser asi, para procesar los archivos subidos al servidor solo debemos recorrerlo
             //obtenemos la cantidad de elementos que tiene el arreglo archivos
        $tot = count($_FILES["archivos"]);
        //este for recorre el arreglo
        for ($i = 0; $i < $tot; $i++){
            //con el indice $i, podemos obtener la propiedad que desemos de cada archivo
                 //para trabajar con este
            //

            // obtenemos los datos del archivo 

            $tamano = $_FILES["archivos"]['size'][$i];

            $tipo = $_FILES["archivos"]['type'][$i];

            $archivo = $_FILES["archivos"]['name'][$i];
            //le agrego numeros al comienzo del nombre con random

            $prefijo = substr(md5(uniqid(rand())),0,6);

            //si la variable archivo contiene algo entra            
            if ($archivo != "") {

                // guardamos el archivo a la carpeta disenos

                $destino =  "disenos/".$prefijo."_".$archivo;

                if (copy($_FILES['archivos']['tmp_name'][$i],$destino)) {
                    $estado = 2;
                }else {
                    $error++;
                }
            }else {

                $status = "Error al subir el archivo, intente nuevamente o mas tarde, si el problema persiste, envienos un correo a [email protected]";

                }
            

        }
    }
}
if ($error == 0 && estado == 2) {
    $Msg = "\r\n\r\n";

    $UserData = "";

    $UserData .= "Nombre y Apellido " . $_POST["Itm_8_00_1"] . "\r\n";

    $UserData .= "Email " . $_POST["Itm_8_00_2"] . "\r\n";

    $UserData .= "Telefono " . $_POST["Itm_8_00_3"] . "\r\n";

    $UserData .= "Cantidad " . $_POST["Itm_8_00_4"] . "\r\n";

    $UserData .= "Despacho " . $_POST["Itm_8_00_5"] . "\r\n";

    $UserData .= "Domicilio " . $_POST["Itm_8_00_6"] . "\r\n";

    $UserData .= "Ciudad " . $_POST["Itm_8_00_7"] . "\r\n";
    $UserData .= "Comuna " . $_POST["Itm_8_00_11"] . "\r\n";

    $UserData .= "Comentarios " . $_POST["Itm_8_00_8"] . "\r\n";
    $UserData .= "Imagen " . $_POST["archivo"] . "\r\n";
    $UserData .= "Cantidad de fotos subidas " . $_POST["$tot"] . "\r\n"; 
    mail( "[email protected]", "", $Msg . $UserData, "From: [email protected]\r\nContent-type: text/plain; charset=iso-8859-1\r\n");
    $status = "Satisfactorio";


    @header("Location: ../index.html");        
} else {

    $status = "Error al subir el archivo";



}
?>

 

NOTA: tambien me gustaria saber como puedo hacerlo para que al presionar en agregar otro campo, aparte de crearme otro input tipo file me cree otro para colocar su respectivo nombre (nombre de la imagen ingresada por el usuario).

 

Espero puedan darme una mano con esto que ya no se como hacerlo, no he encontrado nada en google sobre mi pregunta

 

gracias

Link to comment
Share on other sites

mañana te ayudare mejor ...porque en mi casa no tengo instalado un servidor para probar el codigo....

pero hechando un vistazo me imagino que tu poblema está en el PHP, donde no te recorre el array donde tienes los archivos...

 

prueba poner entre estas lineas de codigo

$tot = count($_FILES["archivos"]);
        //este for recorre el arreglo
        for ($i = 0; $i < $tot; $i++){

un echo $tot; // para que veas si el array lo guarda con mas de 1 valor....

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...