0

我试图创建一个表单来上传文件,但是当我上传文件时,没有出现在特定的路由中。我使用 chmod 向上传文件的文件夹授予权限。请帮忙。

JAVASCRIPT

    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="jquery-1.9.1.min.js"></script>
        <script src="jquery-ui.js"></script>
    </head>
    <body>
        <div id="subir">
            <input id="archivos" type="file" name="archivos[]" multiple="multiple" onchange="seleccionado();" />
        </div>
        <div id="cargados">

        </div>
    </body>
    <script>
        function seleccionado(){

             var archivos = document.getElementById("archivos");
             var archivo = archivos.files; 
             var data = new FormData();

             for(i=0; i<archivo.length; i++){
                 data.append('archivo'+i,archivo[i]);
             }

             $.ajax({
                 url:'subir.php', 
                 type:'POST', 
                 contentType:false, 
                 data:data, 
                 processData:false, 
                 cache:false 
             }).done(function(msg){
                  $("#cargados").append(msg); 
             });
        }
    </script>    

PHP

<?php

  $ruta='/var/www/imgSube/';
  foreach ($_FILES as $key) {
    if($key['error'] == UPLOAD_ERR_OK ){
      $nombre = $key['name'];
      $temporal = $key['tmp_name']; 
      $tamano= ($key['size'] / 1000)."Kb"; 
      move_uploaded_file($temporal, $ruta . $nombre); 

      echo "
        <div id='subido'>
        <h12><strong>Nombre del archivo: $nombre</strong></h2><br />
        <h12><strong>Tamaño del archivo: $tamano</strong></h2><br />
        <hr>
        </div>
      ";
    }else{
      echo $key['error']; 
    }
  }
?>
4

1 回答 1

0

用 FF 24.0 测试

您的代码有效并已签出。我在自己的机器上对其进行了测试,问题可能出在您的路径设置方式上。

而不是使用绝对路径,如$ruta='/var/www/imgSube/';

尝试使用相对路径,这会影响$ruta='imgSube/';从服务器根目录运行脚本时的影响,这就是我所做的。

如果从子文件夹中运行脚本,则路径将如下所示:

$ruta='../../imgSube/';

还要确保确实调用了您的文件夹imgSube而不是imgsube小写s

在 Linux 机器上,这会有所作为。

为了记录,我使用过,jquery-1.10.2.js但我怀疑这会有所作为。

注意/编辑:这不适用于 IE 7

于 2013-10-18T15:19:00.360 回答