2016-05-04 17 views
1

PHPを使用してサーバーにファイルをアップロードできません。問題は、どのエラーが表示されているかを見つけることができないか、どのようにエラーが発生するかわかりません。ところで、私はファイルの移動について何かと思います。これは、PHPコードPHPの移動ファイルを使用したファイルアップロード

<!-- upload --> 
    <?php 
     if (isset($_FILES["myFile"])) { 
      $myFile = $_FILES["myFile"]; 
      // File prop 
      $myFileName = $myFile["name"]; 
      $myFileTmp = $myFile["tmp_name"]; 
      $myFileSize = $myFile["size"]; 
      $myFileError = $myFile["error"]; 

      //File extension 
      $myFileExt = explode(".", $myFileName); 
      $myFileExt = strtolower(end($myFileExt)); 
      $allowed = array ('png' , 'jpg' , 'txt'); 

      if(in_array($myFileExt, $allowed)) { 
       if($myFileError === 0) { 
        $newFileName = uniqid('', true) . '.' .$myFileExt; 
        $fileDestination = "/var/www/upload".$newFileName; 

        if(move_uploaded_file($myFileTmp, $fileDestination)) { 
         print_r($fileDestination); 
        } else { 
         print_r($myFileError); 
        } 
       } else { 
        print_r("error"); 
       } 
      } else { 
       print_r("error"); 
      } 
     } 
    ?> 

はこちらのフォームです:

<form action="" method="post" enctype="multipart/form-data" style="margin:15px"> 
      <input type="file" style="margin:5px" name="myFile"> 
      <input type="submit" class="btn-upload-file" style="margin:5px" value="Upload"> 
      </form> 

任意のアイデア?

+1

あなたがUbuntuの/ Apacheを使用している場合は、/var/log/apache2/error.logの下部に内容を確認 - どの部分を失敗しているようあなたにいくつかの指標を与えるかもしれない: これを試してみてください。 –

+0

フォームのアクションがファイルを指していますか? – Birdman

+0

アクションは同じファイルを指している必要があります.phpとhtmlの部分は同じindex.phpファイルにあります。私はPHPで新しく、ファイルを宣言する必要がありますか? –

答えて

2

ご迷惑をおかけしています。/www/uploadsのあとにスラッシュ(/)が見つかりませんでした。

<?php 
     if (isset($_FILES["myFile"])) { 
      $myFile   = $_FILES["myFile"]; 
      // File prop 
      $myFileName  = $myFile["name"]; 
      $myFileTmp  = $myFile["tmp_name"]; 
      $myFileSize  = $myFile["size"]; 
      $myFileError = $myFile["error"]; 

      //File extension 
      $myFileExt = explode(".", $myFileName); 
      $myFileExt = strtolower(end($myFileExt)); 
      $allowed = array ('png' , 'jpg' , 'txt'); 

      if(in_array($myFileExt, $allowed)) { 
       if($myFileError === 0) { 
        $newFileName  = uniqid('', true) . '.' . $myFileExt; 
        $fileDestination = "/var/www/upload/{$newFileName}";  //YOU WERE ONLY MISSING A SLASH (/) HERE AFTER /upload 
        if(move_uploaded_file($myFileTmp, $fileDestination)) { 
         print_r($fileDestination); 
        } else { 
         print_r($myFileError); 
        } 
       } else { 
        print_r("error"); 
       } 
      } else { 
       print_r("error"); 
      } 
     } 
    ?> 


    <form action="" method="post" enctype="multipart/form-data" style="margin:15px"> 
     <input type="file" style="margin:5px" name="myFile"> 
     <input type="submit" class="btn-upload-file" style="margin:5px" value="Upload"> 
    </form> 
+0

Hmm私は同じ問題があるので、これがエラーかどうかわかりません。ここで失敗します:if(move_uploaded_file($ myFileTmp、$ fileDestination))とprint_r($ myFileError); "0"を返します。 –

関連する問題