2014-09-22 2 views
1

У меня возникла проблема с загрузкой файла, где он не загружается. При загрузке 7-мегабайтного видео $ _FILES ['video'] ['tmp_name'] пуст, и когда я загружаю файл размером 15 МБ, форма фактически не «отправляется», а просто обновляется.Загрузка файла PHP без отправки

Вот мой код для обработки представления:

if(isset($_POST['submit'])){ 

    $blah = "".$_FILES['video']['size'].""; 
    var_dump($blah); 

    if(empty($_FILES['video']) && empty($_POST['create_video'])){ 
     echo "<div class='alert alert-danger' role='alert'><center><strong>Missing Fields:</strong> Please choose a video or request the ##### team create a video.</center></div>"; 
    } else { 

     if(empty($_FILES['video']['name']) && $_POST['create_video'] == "true"){ 
      $_SESSION['create_video'] = protect($_POST['create_video']); 
      ?> 
       <script type="text/javascript"> 
        window.location = "NEXT_PAGE"; 
       </script> 
      <? 

       exit(); 

     }else{ 

      //if all were filled in continue 
      $allowedExts = array("mp4", "MP4", "m4a"); 
      $extension = pathinfo($_FILES['video']['name'], PATHINFO_EXTENSION); 

      if (($_FILES["video"]["size"] <= 15728640) && (in_array($extension, $allowedExts))) { 

       if ($_FILES["video"]["error"] > 0){ 
        echo "Return Code: " . $_FILES["video"]["error"] . "<br />"; 
       }else{ 
        //Get the height and width of our video 
        //$getID3 = new getID3; 
        //$file = $getID3->analyze($_FILES["video"]["tmp_name"]); 
        //$width =$file['video']['resolution_x']; 
        //$height = $file['video']['resolution_y']; 
        $img = getimagesize($_FILES['video']['tmp_name']); 
        $width = $img[0]; 
        $height = $img[1]; 
        var_dump($width); var_dump($height); 
        if(($height < 719) || ($width < 1279)){ 
         echo "<div class='alert alert-danger' role='alert'><center><strong>Invalid file dimensions</strong> Please ensure your image is the correct size.</center></div>"; 

        } else { 

         $ext = findexts ($_FILES["video"]["name"]); 
         $ran = rand(); 
         $file_name = $_FILES["video"]["name"] = "".$_SESSION['uid'] ."".$ran.".".$ext.""; 

          if (file_exists("uploads/video_ads/".$_SESSION['uid']."_" . $_FILES["video"]["name"])){ 
           echo $_FILES["video"]["name"] . " already exists. "; 
          }else{ 
           move_uploaded_file($_FILES["video"]["tmp_name"], 
           "uploads/video_ads/".$_SESSION['uid']."_" . $_FILES["video"]["name"]); 

          //Save the link of our ad 
          $_SESSION['video'] = "####/uploads/video_ads/".$_SESSION['uid']."_" . $_FILES["video"]["name"].""; 
          $_SESSION['create_video'] = protect($_POST['create_video']); 

          ?> 
           <script type="text/javascript"> 
            window.location = "NEXT_PAGE"; 
           </script> 
          <? 
          exit(); 

          } 
        } 
       } 
      } else { 
       echo "<div class='alert alert-danger' role='alert'><center><strong>Invalid file type</strong> Please upload a video in MP4 format.</center></div>"; 
      } 
     } 
    } 
} 

Вот моя текущая форма:

<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" class="form-signin" role="form" enctype="multipart/form-data"> 
        <br /> 
        <input type="file" name="video" id="video" /><br /> 
        <br /> 


        <div class="row"> 
         <div class="col-md-12"> 
          <strong class="ad-header" 
           style="font-size: 150%; font-weight: bold;">Quick Tips:</strong> 
         </div> 

        </div> 
        <hr> 
        <h3 class="ad-sub-header" style="color: #559fd3; font-size: 150%;">Need 
         help to create engaging artwork for your brand?</h3> 
        <strong class="ad-header" style="font-size: 100%;">#### 
         has the creative team to get it done for you</strong><br /> Only ##/hr - 
        3 revisions - Artwork is yours to keep. <br /> 
        <br /> <input type="checkbox" name="create_video" value="true" /> 
        I don't have an ad. Please create one. <br /> 
        <br /> <input class="btn btn-lg btn-primary btn-block" 
         type="submit" name="submit" value="Continue To Step 5" /> 
       </form> 
+0

-1 для этого беспорядка кода. Отсутствует эхо: ' 'или' ' – DanFromGermany

+0

Я пошел вперед и добавил эхо. Проблема все еще существует. – user1890328

ответ

2

Форы ваш сервер не принимает добавления больше, чем 2M в размере. Вам нужно проверить phpinfo() (или php.ini, если у вас есть к нему доступ), чтобы узнать, каков ваш текущий предел. Если это всего лишь 2М или меньше размера выгрузки, вам необходимо отредактировать его, чтобы разрешить большую загрузку. Если вы находитесь на общем хостинге, вам может быть не повезло.

+0

Приветствую, у меня есть сервер и настройки (за cPanel - upload_max_filesize: 50M и все время выполнения 300) – user1890328

+0

Каков предел памяти? –

+0

ограничение памяти равно -1 (без ограничений) – user1890328

0

Попробуйте изменить ваш php.ini с этой настройкой:

php_value memory_limit 96M 
php_value post_max_size 96M 
php_value upload_max_filesize 96M 

и убедитесь, что установка file_uploads в On

+0

Я добавил это в php.ini и дважды проверял файл_uploads, и он есть. Проблема все еще существует. – user1890328

0

Для тех, кто имеет эту проблему. Мне пришлось увеличить мой post_max_size, который по умолчанию был установлен на 8M.

Смежные вопросы