2016-03-16 2 views
3

У меня есть функция, которая загружает выбранный пользователем файл с помощью API файлов Javascript, но я хочу ограничить тип файла, который можно загрузить. Возможно ли это, и как я могу это сделать? Так, например, я хочу, чтобы пользователь мог загружать DAT-файл. Вот моя функция загрузки файла.Можно ли загрузить определенный тип файла с помощью Javascript?

function readFile(file){ 
    var reader = new FileReader(); 
    var holder; 
    var holderArray = []; 
    var fileArray = []; 
    reader.readAsText(file, "UTF-8"); 
    reader.onload = function(){ 
     file = reader.result; 
     file = file.split(/\s+/g); 
     formatFile(holderArray, 3, holder, file, fileArray); 
     for(var i = 0; i < 2; i++){ 
      formatFile(holderArray, 1, holder, file, fileArray); 
     } 
     for(var i = 0; i < 2; i++){ 
      formatFile(holderArray, 2, holder, file, fileArray); 
     } 
     var meh = file.length/fileArray.length; 
     for(var i = 0; i < meh; i++){ 
      formatFile(holderArray, 5, holder, file, fileArray); 
     } 
     fileArray.pop(); 

     plume = new Plume(fileArray[0], fileArray[4], fileArray[3]); 
     $("#eventDate").val(plume.dateTime); 
     $("#eventLat").val(plume.startLat); 
     $("#eventLon").val(plume.startLong); 
     $("#eventDictionary").val(plume.dict); 
     $("#eventSymbol").val(plume.symbol); 

     fileArray = fileArray.splice(5); 
     plume.graphic = fileArray; 
    } 
} 

$("#load").on("click", function(){ 
    $("#eventNameInput").val(""); 
    var selectedFile = $("#selectedFile"); 
    selectedFile = selectedFile[0].files[0]; 
    if(selectedFile){ 
     readFile(selectedFile); 
     $("#fileDetails").show(); 
    } 
}) 
+0

Независимо от того, что , не доверяйте проверке на стороне клиента. Проверьте тип файла либо с помощью типа MIME, либо с другой аутентификацией на сервере. – zero298

+0

К сожалению, у меня нет возможности обрабатывать что-либо на стороне сервера. Могу ли я проверить тип MIME на стороне клиента? –

ответ

3

Несомненно. Вы можете объявить MIME тип в «принимает» атрибут Например, этот вход будет загружать изображения:

<input type="file" name="img" accept="image/*"> 

для .dat вы можете сделать это (.dat пока неизвестно MIME тип):

<input type="file" name="img" accept=".dat"> 
+1

Так что моя была бы 'accept =" dat/* "'? –

+2

@Robert, я думаю, вы должны использовать 'accept = .dat". Поскольку для файлов '.dat' нет стандартного типа mime. –

+0

@ OnurYıldırım, gotcha, thanks –

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