Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Узнать расширение файл (https://javascript.ru/forum/misc/28319-uznat-rasshirenie-fajjl.html)

maximus 15.05.2012 01:17

Узнать расширение файл
 
Здравствуйте, совсем не рублю в js, только хочу начать его изучать
Помогите решить задачку, которую я написал на php, но вот на js написать не могу
Нужно узнать расширение файла и прописать условие
На PHP это выглядит так
<?php
function expansion($filename) {
    $expansion = substr(strrchr($filename, '.'), 1);
    if($expansion == 'jpg' && 'jpeg' && 'gif' && 'png') {
       $out = "[img]ссылка[/img]" ;   
    } elseif($expansion == 'zip' && 'rar') {
        $out = "[url]ссылка[/url]" ;
    }
    return $out ;
  }
  ?>

Загрузчик файлов выводить изображения и все другие файлы с помощью js
Вот код
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
    <tr class="template-download fade">
        {% if (file.error) { %}
            <td></td>
            <td class="name"><span>{%=file.name%}</span></td>
            <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
            <td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
        {% } else { %}
            <td class="preview">{% if (file.thumbnail_url) { %}
                <a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
            {% } %}</td>
            <td class="name">
                <a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
            </td>
            <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
            {% if (file.url == 'jpg') { %}
            <td class="input"><a href="javascript:input('[img]{%=file.url%}[/img]')" title="{%=file.name%}">Вставить</a></td>
            {% } else { %}
            <td class="input"><a href="javascript:input('[url]{%=file.url%}[/url]')" title="{%=file.name%}">Вставить</a></td>
            {% } %}
            <td colspan="2"></td>
        {% } %}
        <td class="delete">
            <button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
                <i class="icon-trash icon-white"></i>
                <span>{%=locale.fileupload.destroy%}</span>
            </button>
            <input type="checkbox" name="delete" value="1">
                
        </td>
    </tr>
{% } %}
</script>

В коде я уже написал условие, так как код знакомый, соответственно в условии нужно file.url изменить на расширение
{% if (file.url == 'jpg') { %}
            <td class="input"><a href="javascript:input('[img]{%=file.url%}[/img]')" title="{%=file.name%}">Вставить</a></td>
            {% } elseif (file.url == 'zip') { %}
            <td class="input"><a href="javascript:input('[url]{%=file.url%}[/url]')" title="{%=file.name%}">Вставить</a></td>
            {% } %}

Но вот не пойму как расширение файла узнать

devote 15.05.2012 02:42

var fileUrl = "blah/filename.zip",
    parts, ext = ( parts = fileUrl.split("/").pop().split(".") ).length > 1 ? parts.pop() : "";

alert( ext );

maximus 15.05.2012 04:26

=) спасибо
Я тут еще вот так попробовал
a = 'name.png'.split('.');  
var ext = a[a.length-1];  
document.write(ext);

тоже вроде работает.
А вот не пойму как в условие прописать
скажем пишу так
var fileUrl = "тут имя файла или ссылка на него",
    parts, ext = ( parts = fileUrl.split("/").pop().split(".") ).length > 1 ? parts.pop() : "";

alert( ext );

А как в условие прописать?
{% if (document.write(ext) == 'png') { %}

не катит =(

aH6y 17.05.2014 16:47

ext - переменная в которой хранится расширение

if (ext == 'png') {
   console.log(ext);
}


Часовой пояс GMT +3, время: 01:44.