Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.02.2013, 16:58
Новичок на форуме
Отправить личное сообщение для selahssea Посмотреть профиль Найти все сообщения от selahssea
 
Регистрация: 04.01.2011
Сообщений: 3

Определение MIME type (content type)
Есть простейший скрипт который показывает тип файла выбранного в input:file
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
  <script type='text/javascript' src='//code.jquery.com/jquery-1.9.1.js'></script>
<script type='text/javascript'>

$(window).load(function(){
  $("a").on("click", function(){
    alert(document.getElementById('fileChooserID').files[0].type)
  })
});

</script>
</head>
<body>
  <input type="file" name="" id="fileChooserID">
  <a href="#">Click</a>  
</body>
</html>


Живой пример: http://jsfiddle.net/Xm2AN/2/

Но, например, для файлов .psd и .cdr тип файла отсутствует, причем отсутствует только на винде (проверялось в Windows 7 Chrome 25, и Mac OS X Mountain Lion 10.8 Chrome на одинаковых файлах).

Кто сталкивался с подобной проблемой, подскажите, пожалуйста, как определить MIME type таких файлов? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 18.02.2013, 17:41
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Как вариант, попробовать прочитать часть файла через FileReader и попытаться определить что перед нами - psd или нет.
Ответить с цитированием
  #3 (permalink)  
Старый 18.02.2013, 20:58
Новичок на форуме
Отправить личное сообщение для selahssea Посмотреть профиль Найти все сообщения от selahssea
 
Регистрация: 04.01.2011
Сообщений: 3

а с чем вообще может быть связана подобная невозможность определить тип?
Ответить с цитированием
  #4 (permalink)  
Старый 18.02.2013, 21:10
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от danik.js
Как вариант, попробовать прочитать часть файла через FileReader
что это даст?

миме тип вот он
Сообщение от selahssea
document.getElementById('fileChooserID').files[0].type

selahssea, возможно, только по расширению файла - пальцем в небо
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 18.02.2013 в 21:14.
Ответить с цитированием
  #5 (permalink)  
Старый 18.02.2013, 21:14
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

selahssea, не только эти 2 формата, а как я понял много не стандартных форматов не определяет..
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #6 (permalink)  
Старый 18.02.2013, 21:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не знаю. В реестре вроде contentType прописан корректно - image/photoshop. Почему так происходит - непонятно. Кстати, нельзя ли простро проверять расширение файла? Для этого даже сойдет input.value, правда только для одного файла.
Ответить с цитированием
  #7 (permalink)  
Старый 18.02.2013, 21:28
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от nerv_
что это даст?
Поможет определить реальный контент. Хотя да, проверки расширения файла думаю с головой хватит )
Ответить с цитированием
  #8 (permalink)  
Старый 18.02.2013, 21:34
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

danik.js, меня тоже посетила мысль сделать что типо словаря, для нужны форматов, хотя все таки причина интересна почему так, завтра поищу ответ.
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #9 (permalink)  
Старый 19.02.2013, 18:38
Новичок на форуме
Отправить личное сообщение для selahssea Посмотреть профиль Найти все сообщения от selahssea
 
Регистрация: 04.01.2011
Сообщений: 3

Сообщение от danik.js Посмотреть сообщение
Кстати, нельзя ли простро проверять расширение файла?
Просто по расширению файла вроде бы не особо безопасно.
Ответить с цитированием
  #10 (permalink)  
Старый 19.02.2013, 18:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

selahssea, а от кого и от чего вы защищаетесь? Так или иначе все, что происходит на клиенте - не безопасно
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Резиновый дизайн debugx (X)HTML/CSS 22 19.08.2011 16:35
extjs 4 mvc, разбираемся с model & store Lord Daedra ExtJS 1 18.08.2011 22:36
Не получается поменять высоту div revvo jQuery 4 06.08.2011 13:12
динамические списки Shaci jQuery 0 14.12.2009 15:03