Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从同一表单发送两个文件类型输入?_Php_Html_Forms_File_Input - Fatal编程技术网

Php 如何从同一表单发送两个文件类型输入?

Php 如何从同一表单发送两个文件类型输入?,php,html,forms,file,input,Php,Html,Forms,File,Input,问候第一个文件类型输入,如果发送正确,但第二个我不知道如何发送,我希望我附上HTML和PHP代码,以便您可以观察它,并可以给我一个正确的意见,如何这样做发送两种类型的输入文件并到达邮件 FORM.HTML <form action="envio.php" id="formulario" method="post" enctype="multipart/form-data"> <fie

问候第一个文件类型输入,如果发送正确,但第二个我不知道如何发送,我希望我附上HTML和PHP代码,以便您可以观察它,并可以给我一个正确的意见,如何这样做发送两种类型的输入文件并到达邮件

FORM.HTML

<form action="envio.php" id="formulario" method="post" enctype="multipart/form-data">
        <fieldset>
        <h2 class="titulo">Envío de documentos</h2>
        <h3 class="subtitulo">
          Todos los campos marcados con (*) son obligatorios
          si no los llenas no podrás enviar el formulario.
        </h3>

        <input type="text" id="idd" name="idd" hidden>

        <p>N° Documento</p>
        <input
          type="text"
          name="idDocumento"
          id="idDocumento"
          style="background-color: #dfdfdf;"
          readonly='readonly'
        />
  

        <p>(*) Nombres:</p>
        <p id="p_nombre"></p>
        <input
          type="text"
          name="nombres"
          placeholder="Ej. David Alexander"
          required
        />

        <p>(*) Apellidos:</p>
        <p id="p_apellidos"></p>
        <input
          type="text"
          name="apellidos"
          placeholder="Ej. Banda Llanganate"
          required
        />

        <p>(*) Cédula:<div id="salida"></div></p>
        <p id="p_cedula"></p>
        <input
          type="text"
          name="cedula"
          placeholder="Ej. 050xxxxxxx"
          id="ced"
          onchange="validarCed()"
          required
        />

        <p>(*) Cantón:</p>
        <div class="form-group">                                               
              <select name="Canton" id="Canton"  data-placeholder="- Seleccione un cantón -"
               class="form-control chosenCanton" onchange="change(this.id, 'parroquia')"
               value="<%= typeof Canton != 'undefined' ? Canton : '' %>" required>
                <option value=""></option>
                <option value="La Mana">La Maná</option>
               <option value="Latacunga">Latacunga</option>
               <option value="Pangua">Pangua</option>
               <option value="Pujilí">Pujilí</option>
               <option value="Salcedo">Salcedo</option>
               <option value="Saquisili">Saquisilí</option>
               <option value="Sigchos">Sigchos</option>
              </select>
        </div>

        <p>(*) Parroquias:</p>
        <div class="form-group">
            <select id="parroquia" name="Parroquia" data-placeholder="- Seleccione una parroquia -"
            class="form-control chosenParroquia" value="<%= typeof Parroquia != 'undefined' ? Parroquia : '' %>" required>
              <option value=""></option>
            </select>
        </div>

        <p>(*) Barrio/Comunidad/Recinto:</p>
        <p id="p_barrio"></p>
        <input
          type="text"
          name="barrio"
          placeholder="Ej. Centro"
          required
        /> 

        <p>(*) Dirección Calles:</p>
        <p id="p_direccion"></p>
        <input
          type="text"
          name="direccion"
          placeholder="Ej. Calle Juan Manuel Lasso"
          required
        /> 

        <p>(*) Teléfono Celular:</p>
        <p id="p_t_celular"></p>
        <input
          type="text"
          name="t_celular"
          value="09"
          placeholder="Ej. 09xxxxxxxx"
          required
        /> 

        <p>Teléfono Convencional:</p>
        <p id="p_t_convencional"></p>
        <input
          type="text"
          name="t_convencional"
          id="t_convencional"
          value="03"
          onchange="validarTC()"
          placeholder="Ej. 032xxxxxx"
        />

        <p>(*) Tipo de persona:</p>
        <select name="tipo_persona" class="tipo_persona" required>
          <option value="opcion" selected>Seleccione el tipo de persona...</option>
          <option value="Persona Natural">Persona Natural</option>
          <option value="Persona Jurídica de Derecho Privado">Persona Jurídica de Derecho Privado</option>
          <option value="Persona Jurídica de Derecho Público">Persona Jurídica de Derecho Público</option>
        </select>
        <br>

        <p>(*) Correo Electrónico:</p>
        <p id="p_email"></p>
        <input
          type="email"
          name="email"
          placeholder="Ej. example@hotmail.com"
          required
        />

        <p>(*) Petición Concreta:</p>
        <!--<input
          type="textarea"
          name="desc"
          placeholder="Documento para..."
          required
        />-->

        <textarea name="desc" id="desc" cols="30" rows="5" placeholder="Documento para..." required></textarea>

        <p>(*) Archivo Digital PDF:</p>
        <p id="p_file"></p>
        <input
          type="file"
          name="file"
          id="archivoInput"
          onchange="return validarExt()"
          required
        />

        <p>(*) ¿Tiene un archivo adjunto?</p>
        <div id="checkbox">
          <div id="sidiv">
            <span>Si</span><input type="radio" name="si" value="Si" id="si" onclick="ver()"><br>
          </div>
          <div id="nodiv">
            <span>No</span><input type="radio" name="no" value="No" id="no" checked onclick="ocultar()"><br>
          </div>
          
          
        </div>

        
        <div id="show" style="display: none;">
          <p>(*) Archivo Adjunto PDF:</p>
          <p id="p_file2"></p>
          <input
            type="file"
            name="file2"
            id="archivoInput2"
            onchange="return validarExt2()"
          />
        </div>
        

        <input
          type="submit"
          name="next"
          class="next action-button"
          value="Enviar"
          id="btnsubmit"
        />

        <p id="mensaje"></p>
        <p id="mensaje_telefono_con"></p>
       <div id="visorArchivo"></div>
       <div id="visorArchivoAdjunto"></div>
      </fieldset>
      <br />
      <br />
      
    </form>

文件环境
Todos los campos marcados con(*)son obligatorios
我不知道该怎么做,也不知道该怎么做。
N°文件

(*)名称:

(*)阿佩利多斯:

(*)塞杜拉:

(*)坎顿:

拉马纳 拉塔孔加 潘瓜 普吉利 萨尔塞多 萨奎西利 格乔斯 (*)帕罗奎亚斯:

(*)巴里奥/康穆尼达/雷辛托:

(*)迪雷西翁呼吁:

(*)电话号码:

电话会议:

(*)个人信息:

个人选择。。。 自然人 私人法律人 德雷乔·普布利科法人
(*)科雷奥电气公司:

(*)Petición Concreta:

(*)Archivo数字PDF:

(*)你有什么想法

Si

(*)Archivo Adjunto PDF:



ENVIO.PHP

<?php

// variables del formulario
    $NDocumento = $_POST['idDocumento'];
    $nombres = strip_tags($_POST['nombres']);
    $apellidos = strip_tags($_POST['apellidos']);
    $cedula = strip_tags($_POST['cedula']);
    $Canton = strip_tags($_POST['Canton']);
    $Parroquia = strip_tags($_POST['Parroquia']);
    $barrio = strip_tags($_POST['barrio']);
    $direccion = strip_tags($_POST['direccion']);
    $t_celular = strip_tags($_POST['t_celular']);
    $t_convencional = strip_tags($_POST['t_convencional']);
    $tipo_persona = strip_tags($_POST['tipo_persona']);
    $email = strip_tags($_POST['email']);
    $desc = strip_tags($_POST['desc']);

    $asunto2 = 'RECEPCIÓN EXTERNA';

    //ARCHIVO
    $nameFile = $_FILES['file']['name'];
    $sizeFile = $_FILES['file']['size'];
    $typeFile = $_FILES['file']['type'];
    $tempFile = $_FILES['file']['tmp_name'];
    

    $fecha= time();
    $fechaFormato = date("j/n/Y",$fecha);

    $correoDestino = "user@example.com";
    
    //asunto del correo
    $asunto = "Nuevo documento de: " . $nombres;

    
    // -> mensaje en formato Multipart MIME
    $cabecera = "MIME-VERSION: 1.0\r\n";
    $cabecera .= "Content-type: multipart/mixed;";
    //$cabecera .="boundary='=P=A=L=A=B=R=A=Q=U=E=G=U=S=T=E=N='"
    $cabecera .="boundary=\"=C=T=E=C=\"\r\n";
    $cabecera .= "From: RECEPCIÓN EXTERNA<{$email}>";

    //Primera parte del cuerpo del mensaje
    $cuerpo = "--=C=T=E=C=\r\n";
    $cuerpo .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
    //cuerpo .= "charset=utf-8\r\n";
    //$cuerpo .= "Content-Transfer-Encoding: 8bit\r\n";
    $cuerpo .= "\r\n"; // línea vacía
    $cuerpo .= "Correo enviado por: " . $nombres;
    $cuerpo .= " con fecha: " . $fechaFormato . "\r\n";
    $cuerpo .= "N Documento: " . $NDocumento . "\r\n";
    $cuerpo .= "Nombres: " . $nombres . "\r\n";
    $cuerpo .= "Apellidos: " . $apellidos . "\r\n";
    $cuerpo .= "Cédula: " . $cedula . "\r\n";
    $cuerpo .= "Cantón: " . $Canton . "\r\n";
    $cuerpo .= "Parroquia: " . $Parroquia . "\r\n";
    $cuerpo .= "Barrio: " . $barrio . "\r\n";
    $cuerpo .= "Dirección: " . $direccion . "\r\n";
    $cuerpo .= "Celular: " . $t_celular . "\r\n";
    $cuerpo .= "Covencional: " . $t_convencional . "\r\n";
    $cuerpo .= "Tipo de persona: " . $tipo_persona . "\r\n";
    $cuerpo .= "Correo: " . $email . "\r\n";
    $cuerpo .= "Petición concreta: " . $desc . "\r\n";
    $cuerpo .= "\r\n";// línea vacía

    // -> segunda parte del mensaje (archivo adjunto)
        //    -> encabezado de la parte
    $cuerpo .= "--=C=T=E=C=\r\n";
    $cuerpo .= "Content-Type: application/octet-stream; ";
    $cuerpo .= "name=" . $nameFile . "\r\n";
    $cuerpo .= "Content-Transfer-Encoding: base64\r\n";
    $cuerpo .= "Content-Disposition: attachment; ";
    $cuerpo .= "filename=" . str_replace(' ', '',$nameFile) . "\r\n";  //quito los espacios en el nombre
    $cuerpo .= "\r\n"; // línea vacía
    $cuerpo .= "\r\n"; // línea vacía
    
    $fp = fopen($tempFile, "rb");
    $file = fread($fp, $sizeFile);
    $file = chunk_split(base64_encode($file));
    
    $cuerpo .= "$file\r\n";
    $cuerpo .= "\r\n"; // línea vacía
    // Delimitador de final del mensaje.
    $cuerpo .= "--=C=T=E=C=--\r\n";
    
    if (!empty($_FILES['file2'])){
        $nameFile2 = $_FILES['file2']['name'];
        $sizeFile2 = $_FILES['file2']['size'];
        $typeFile2 = $_FILES['file2']['type'];
        $tempFile2 = $_FILES['file2']['tmp_name'];
        
        //ARCHIVO ADJUNTO 2
        $cuerpo .= "--=C=T=E=C=\r\n";
        $cuerpo .= "Content-Type: application/octet-stream; ";
        $cuerpo .= "name2=" . $nameFile2 . "\r\n";
        $cuerpo .= "Content-Transfer-Encoding: base64\r\n";
        $cuerpo .= "Content-Disposition: attachment; ";
        $cuerpo .= "filename2=" . str_replace(' ', '',$nameFile2) . "\r\n";  //quito los espacios en el nombre
        $cuerpo .= "\r\n"; // línea vacía*/
        
        //FILE2
        $fp2 = fopen($tempFile2, "rb2");
        $file2 = fread($fp2, $sizeFile2);
        $file2 = chunk_split(base64_encode($file2));
        
        //FILE 2
        $cuerpo .= "$file2\r\n";
        $cuerpo .= "\r\n"; // línea vacía
        // Delimitador de final del mensaje.
        $cuerpo .= "--=C=T=E=C=--\r\n";
    }
    
    
    
    
    //Enviar el correo
    if(mail($correoDestino, $asunto, $cuerpo, $cabecera)){
        echo '<script language="javascript">alert("Documento enviado con exito");window.location.href="formulario.html"</script>';
        
    }else{
        echo '<script language="javascript">alert("Documento no enviado algo fallo!");window.location.href="formulario.html"</script>';
    }

您应该描述您遇到的问题。这个代码有效吗?它会给你错误吗?如果这对你来说更容易,也有。有具体的问题吗?基本的想法看起来不错…但是这是很多代码,所以你有一个问题,你需要准确地解释运行代码时出现了什么问题,并告诉我们你是如何调试它并试图缩小问题的范围的。我们无法为您调试它。