Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ограничение по Mime-type
Форумы портала PHP.SU » » Вопросы новичков » Ограничение по Mime-type

Страниц (1): [1]
 

1. valkiriy - 03 Мая, 2013 - 05:18:46 - перейти к сообщению
Доброе утро,
дорабатываю скриптик галереи и встала задача как ограничить файлы по формату
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. if (isset($_POST["submit"]) and $_POST["submit"] == 'upload')
  3. {
  4. $uploaddir = './img/screenshots/';
  5. $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
  6. if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile))
  7. {
  8. echo "<h3>Файл успешно загружен на сервер</h3>";
  9. }
  10. else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; }
  11. unset($_POST["submit"]);
  12. }
  13. else
  14. {
  15. ?>
  16. <FORM ENCTYPE="multipart/form-data" ACTION="" METHOD="POST">
  17. <input type="File" name="uploadfile" size="30" maxlength="255">
  18. <INPUT TYPE="submit" name="submit" VALUE="upload">
  19. </FORM>
  20. <?php
  21. }
  22. ?>

пробовал так:
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST["submit"]) and $_POST["submit"] == 'upload' and $_FILES['uploadfile']['type'] ==  'image/jpeg' or 'image/png')

когда писал - особо не надеялся... ну так и получилось, что нечего не получилось... ибо $_FILES['uploadfile']['type'] не определена... подскажите какие нибудь варианты?
2. nkl - 03 Мая, 2013 - 09:43:43 - перейти к сообщению
$_FILES['uploadfile']['name'], отрезаешь последние 4 символа и свераешь со строкой которая тебе нужна, например 'jpg', если не совпадает, то в топку его, если да, то загружаем. Как-то так.
3. valkiriy - 03 Мая, 2013 - 11:39:58 - перейти к сообщению
да уже попробовал и через pathinfo() получить расширение и сверить с строками и через explode () сверить строку после точки, но потерпел кучу неудач... просто хочу поставить ограничение на определенные расширения файлов... есть еще предложения?
4. snikers987 - 03 Мая, 2013 - 11:56:21 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $rgAllowedExt = array('gif', 'jpg', 'png');
  3. $rgPathinfo = pathinfo($sFilename);
  4. if(in_array($rgPathinfo['extension'], $rgAllowedExt)){
  5.   //допустимый тип
  6. }
  7.  


_http://www.php.net/manual/ru/ref.fileinfo.php
5. valkiriy - 03 Мая, 2013 - 12:27:19 - перейти к сообщению
Благодарю все работает) а я дырявая голова не додумался засунуть в массив)

 

Powered by ExBB FM 1.0 RC1