2015-05-03 4 views
5

Так что я пытаюсь сделать загрузку файла с помощью JQuery AJAX в вещь, и она продолжает давать мне ошибку 500.JQuery AJAX загрузки файлов Ошибка 500

$(function() { 
    $('form').submit 
    (
     function() 
     { 
      $.ajax({ 
       type: 'POST', 
       url: 'photochallenge/submit.php', 
       data: new FormData(this), 
       processData: false, 
       contentType: false, 
       success: function(data) { 
        Materialize.toast(data, 4000); 
       } 
      }); 
      return false; 
     } 
    ); 
}); 

Я также использую этот PHP код обрабатывать загрузка файла:

<?php 
$target_dir = "uploads/"; 
$target_file = null; 
$uploadOk = 1; 
$response = "Please choose an image"; 
// Check if image file is a actual image or fake image 
if(isset($_POST["pic"])) { 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
    if($check !== false) { 
     $uploadOk = 1; 
    } else { 
     $response = "File is not an image."; 
     $uploadOk = 0; 
    } 


    // Check file size 
    if ($uploadOk == 1 && $_FILES["fileToUpload"]["size"] > 500000) { 
     $response = "Sorry, your file is too large."; 
     $uploadOk = 0; 
    } 

    // Check if $uploadOk is set to 0 by an error 
    if ($uploadOk == 0) { 

    // if everything is ok, try to upload file 
    } else { 
     //find target file 
     $found = false 
     $tmp = 0 
     while(!$found) { 
      $target_file = $target_dir . $tmp . ".png"; 
      if(file_exists($target_file)) { 
       $tmp = $tmp + 1; 
      } else { 
       $found = true; 
      } 
     } 

     if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
      $response = "Thank you for your submission!"; 
      shell_exec("python log.py ".$_POST["firstname"]." ".$_POST["lastname"]." ".$target_file); 
     } else { 
      $response = "Sorry, there was an error uploading your file."; 
     } 
    } 
} 

echo $response; 
?> 

к сожалению, я не могу отпустить ссылку, где актуальна проблема, но мы надеемся, что этот код достаточно, чтобы помочь решить эту проблему. Если какие-либо другие детали необходимы, пожалуйста, не стесняйтесь, дайте мне знать.

+0

я хотел бы начать с правами на файл, который вы пытаетесь использовать в вызове Ajax. После этого разрешения на проверку в любом каталоге, который вы пытаетесь записать, веб-серверу требуется разрешение на запись. Посмотрите на код конкретно, shell_exec выглядит как функция, которую многие хосты хотели бы отключить в php.ini, – Chris

+0

это ошибка http 500 или некоторая внутренняя логика - ошибка 500? –

+2

проверить журнал ошибок сервера. Вероятно, вы загружаете файл выше предела. – Tejas

ответ

1

Если вы не используете «.htaccess», проблема может быть в shell_exec, что может привести к сбою приложения, если вы используете что-то как fast-cgi.

Комментарий эта линия и perfom сценарий:

shell_exec("python log.py ".$_POST["firstname"]." ".$_POST["lastname"]." ".$target_file); 

Использование комментариев в PHP:

//shell_exec("python log.py ".$_POST["firstname"]." ".$_POST["lastname"]." ".$target_file); 
Смежные вопросы