0

ファイルをアップロードするフォームを作成しようとしていますが、ファイルをアップロードすると、特定のルートに表示されません。ファイルをアップロードするフォルダに chmod を使用してアクセス許可を与えました。助けてください。

ジャバスクリプト

    <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

FF24.0でテスト済み

コードが機能し、チェックアウトされました。自分のマシンでテストしましたが、問題はパスの設定方法にある可能性があります。

のように絶対パスを使用する代わりに$ruta='/var/www/imgSube/';

$ruta='imgSube/';サーバーのルートからスクリプトを実行しているときに影響を受ける相対パスを使用してみてください。これは私が行ったことです。

サブフォルダー内からスクリプトを実行する場合、パスは次のようになります。

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

また、フォルダーが小文字でimgSubeはなく実際に呼び出されていることを確認してくださいimgsubes

Linux ボックスでは、これにより違いが生じます。

記録のために、私は使用しましjquery-1.10.2.jsたが、それが違いを生むとは思えません.

注/編集:これは IE 7 では機能しません

于 2013-10-18T15:19:00.360 に答える