Как отключить кнопку отправки, пока пользователь не загрузит изображение с правильными характеристиками? - PullRequest
0 голосов
/ 27 июня 2011

У меня есть этот код загрузки:

<?php
//Сheck that we have a file
if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) {
  //Check if the file is JPEG image and it's size is less than 350Kb
  $filename = basename($_FILES['uploaded_file']['name']);
  $ext = substr($filename, strrpos($filename, '.') + 1);
  if (($ext == "png") && ($_FILES["uploaded_file"]["type"] == "image/png") && 
    ($_FILES["uploaded_file"]["size"] < 150000)) {
    //Determine the path to which we want to save this file
      $newname = dirname(__FILE__).'/upload/'.$filename;
      //Check if the file with the same name is already exists on the server
      if (!file_exists($newname)) {
        //Attempt to move the uploaded file to it's new place
        if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
           echo "It's done! The file has been saved as: ".$newname;
        } else {
           echo "Error: A problem occurred during file upload!";
        }
      } else {
         echo "Error: File ".$_FILES["uploaded_file"]["name"]." already exists";
      }
  } else {
     echo "Error: Only .ppg images under 150Kb are accepted for upload";
  }
} else {
 echo "Error: No file uploaded";
}
?>

А также я использую плагин jquery для отправки форм с помощью ajax.

Вопрос в том, как отключить кнопку отправки, если пользователь не попытается загрузить PNG с максимальным размером 150 КБ?

Ответы [ 2 ]

1 голос
/ 27 июня 2011

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

Но вы можете проверить расширение файла. В браузерах, соответствующих стандартам, вы можете выполнить следующие действия для отображения имени файла:

<input type="file" id="test">
<script type="text/javascript">
  var input = document.getElementById('test');
  input.addEventListener('change', function() { alert(input.value); }, false);
</script>
0 голосов
/ 27 июня 2011

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

Но есть плагин jquery, который называется uploadify, который позволяет больше настраивать, что может помочь вам в решении.

...