Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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问题上传文件zip_Php_Apache_File Upload_Reset - Fatal编程技术网

Php问题上传文件zip

Php问题上传文件zip,php,apache,file-upload,reset,Php,Apache,File Upload,Reset,我在创建应用程序时遇到问题,用户提交一个文件,然后对其进行分析 我的问题是,我无法正确上传文件,当文件达到100%上传(在chrome状态栏中通知)时,它会再次启动,然后当页面加载时,告诉我没有收到文件 这是我的密码: #upload form //just a basic form <form id="form1" name="form1" method="post" action="test_lib_valida.php" enctype="multipart/form-d

我在创建应用程序时遇到问题,用户提交一个文件,然后对其进行分析

我的问题是,我无法正确上传文件,当文件达到100%上传(在chrome状态栏中通知)时,它会再次启动,然后当页面加载时,告诉我没有收到文件

这是我的密码:

 #upload form //just a basic form

 <form id="form1" name="form1" method="post" action="test_lib_valida.php"  

enctype="multipart/form-data">
  <tr>
    <td align="center" class="info">OPERACIÓN</td>
  </tr>
  <tr>
    <td align="center"><label for="oper2"></label>
      <select name="oper2" id="oper2">
        <option value="1" selected="selected">Altas</option>
        <option value="2">Bajas</option>
        <option value="3">Cambios</option>
      </select></td>
  </tr>
  <tr>
    <td align="center"><label for="archivo2">Seleccione archivo</label>
      <input type="file"  name="archivo2" id="archivo2" multiple /></td>
  </tr>
</table>
</form>
getArchivo函数//获取文件并将其发送到相应的文件夹,返回查找文件的最终URL,如果文件已压缩,则将其解压缩并将txt保存在其中,然后消除压缩

    function getArchivo($nombre,$nuevo_nom,$ruta,$maxsizeb=204800000000000,$allowedExts = array("txt"),$tipos)//verifica un archivo subido y lo mueve a la carpeta especificada, la ruta va con diagonal recibidos/, si tiene exito regresa [0]1 y [1]ruta archivo
{
//verifica el nombre del folder, 1 para cada dependencia, la cve de la dependencia esta en la variable de sesion "id_dep"
$extension = end(explode(".", $_FILES["$nombre"]["name"]));
//variable de sesion para obtener la extension fuera de aqui
      if(!$nuevo_nom)
      $nuevo_nom=$nombre;
      if($tipos)
      $tip= in_array($_FILES["$nombre"]["type"],$tipos);
      else
      $tip=1;
if (
    $tip
    && 
    ($_FILES["$nombre"]["size"] < $maxsizeb)
    && 
    in_array($extension, $allowedExts)
   )
  {
  if ($_FILES["$nombre"]["error"] > 0)//error de subida
    {
      if($_FILES["$nombre"]["error"]==UPLOAD_ERR_PARTIAL)//no subio completo
        {
            mensaje("Archivo Recibido Parcialmente, intentelo de nuevo");
            //redirige("index_2.php");
        }
        else
    mensaje("Error de subida: " . $_FILES["$nombre"]["error"]);
    //redirige("index_2.php");
    $result[0]=0;
    }
  else
    {
  //showinfo("archivo");
  //ya paso, va pa su carpeta
      try
      {
              //echo ("$ruta" . $nuevo_nom.'.'.$extension);
          if($extension=='zip')//viene comprimido
          {
          //mensaje("archivo Comprimido detectado");
          move_uploaded_file($_FILES["$nombre"]["tmp_name"],$ruta.$_FILES["$nombre"]["name"]);
          //mensaje("moviendo:".$_FILES["$nombre"]["tmp_name"]." como ".$ruta.$_FILES["$nombre"]["name"]);
          descomprime($ruta.$_FILES["$nombre"]["name"],$ruta);
          //mensaje("descomprimiendo:".$ruta.$_FILES["$nombre"]["name"]." en ".$ruta);
          //cambiamos nombre al archivo
          rename(str_replace('zip','txt',$ruta.$_FILES["$nombre"]["name"]),$ruta.$nuevo_nom.'.txt');
          //como se llamo
          $_SESSION["recibido"]=$_FILES[$nombre]["name"];
          $_SESSION["formato"]=$extension;
          $_SESSION["tamano"]=$_FILES[$nombre]["size"];
          //quitamos el zip
          unlink($ruta.$_FILES["$nombre"]["name"]);
          $result[0]=1;
          $result[1]=$ruta . $nuevo_nom.'.txt';
          }
          else//es txt
          {
            move_uploaded_file($_FILES["$nombre"]["tmp_name"],$ruta.$nuevo_nom.'.txt');  
          $_SESSION["recibido"]=$_FILES[$nombre]["name"];
          $_SESSION["formato"]=$extension;
          $_SESSION["tamano"]=$_FILES[$nombre]["size"];
          $result[0]=1;
          $result[1]=$ruta . $nuevo_nom.'.txt';
          }
      }
          catch (Exception $e)
          {    
         mensaje($e->getMessage());
         }
    }
  }
else
  {
  mensaje("ARCHIVO NO PERMITIDO, POR EL MOMENTO SOLO SE ACEPTAN ARCHIVOS EXTENSION (ZIP,TXT)");
  //redirige("index_2.php");
  $result[0]=0;
  $result[1]="";
  //info del archivo
  //showinfo("archivo");
  }
  return $result;
}
mensaje函数只是通过javascript发送警报

奇怪的是,在我的笔记本电脑安装上,它像一个魔咒一样工作,但在服务器安装上它显示了错误,问题是,所有的php和apache配置在两个安装上都是相同的,现在我想知道发生了什么

我得到的错误,甚至从文件小到3MB,所有较低的都通过

有时我会收到
错误324(net::ERR\u EMPTY\u RESPONSE):
或来自我的应用程序的响应,该响应表示文件无效

关于php,我有

memory limit=512
upload_max_filesize 100M
post_max_size 100M
max_input_time 300
max_execution_time 300
//And all the folders have 777 permission

有什么我不知道的吗

只是想补充一句,“分析”很有趣。谢谢。如果它能在你的笔记本电脑上工作,但不能在服务器上工作,那么第一个和第二个有什么区别?您是否尝试上载第一个
.extension
文件和第二个
.extension
文件,该文件与$allowedExts上的
数组中的
文件不匹配?请查看服务器上载目录的权限。@RelevantUsername:是的,我尝试上载.zip和.txt文件,而较大的文件则会被删除rejected@LuigiSiri我使用的目录有777权限,这就是为什么我感到困惑的原因,它可能是网络上的什么东西吗?我的意思是,在我的笔记本电脑上,它不必去任何地方,在服务器上,有几个点可以阻止文件,这是可能的吗?
function descomprime($nomarch,$ruta)//takes the file and decompresses it if its a zip file
 {
try
{
     $zip = new ZipArchive;
     $res = $zip->open($nomarch);
     $nombrebusca=str_replace("zip","txt",$nomarch);
     $nombrebusca= basename($nombrebusca);
    $esta= $zip->locateName($nombrebusca);
    if($esta===0)//verifica que lo de adentro se llame como lo de afuera
    {
     if ($res === TRUE) {
         $zip->extractTo($ruta);
         $zip->close();
              mensaje("Archivo descomprimido correctamente:".$esta);
         //echo 'ok';
     } else {
         mensaje ('Problema al descomprimir el Archivo, Por favor verifique que se pueda descomprimir');
         //redirige("index_2.php");
     }
        }
    else
    {
     mensaje ('El archivo comprimido no contiene el archivo de texto requerido');
     //redirige("index_2.php");
    }
}
catch (Exception $e)
{
    echo $e->getMessage();
    }
 }
memory limit=512
upload_max_filesize 100M
post_max_size 100M
max_input_time 300
max_execution_time 300
//And all the folders have 777 permission