Skip to content

Instantly share code, notes, and snippets.

@KohsukeHada
Created April 4, 2014 13:23
Show Gist options
  • Save KohsukeHada/9974608 to your computer and use it in GitHub Desktop.
Save KohsukeHada/9974608 to your computer and use it in GitHub Desktop.
自分のサーバのファイルを取得してファイル サイズをリンク横に出力するスクリプト
$("document").ready(function() {
//自分のサーバのファイルを取得してファイル サイズをリンク横に出力するスクリプト
//IMG タグの場合と class="noFileInfo" 指定の場合は除外
$("a[href]").not(":has('img')").not(".noFileInfo").each(function() {
var obj = $(this);
var href = obj.attr('href');
if (href.match(/\.(TXT|CSV|PDF|MP3|ISO|ZIP|7Z|LZH|RAR|EXE|DMG|SIT|TAR|GZ|DOC|DOCX|XLS|XLSX|PPT|PPTX|MOV|AVI|MP4|WMV|MSI|MSP|SWF)$/i)) {
var ext = RegExp.$1;
var req = $.ajax({
type: 'HEAD',
url: href,
success: function () {
var size = req.getResponseHeader('Content-Length');
if (size) {
var showsize = conv_unit(size);
var iHrefLength = href.length;
var iDot = href.lastIndexOf(".");
var sExtension = href.substring(iDot+1,iHrefLength);
sExtension = sExtension.toUpperCase();
var regExp = /PDF([?#&][\w]+[=]\d)+$/;
if(regExp.test(sExtension)) {
sExtension = '';
}
obj.after('&nbsp;<span class="fileInfo">['+ sExtension + '&nbsp;' + conv_unit(size)+']</span>');
}
}
});
}
});
});
//関数
var number_format = function(val) {
var s = '' + val;
if (s.length > 3) {
var r = ((r = s.length % 3) == 0 ? 3 : r);
var d = s.substring(r);
s = s.substr(0, r) + d.replace(/(\d{3})/g, ",$1");
}
return s;
};
var conv_unit = function(size) {
var unit = ['KB','MB','GB','TB','PB','EB','ZB','YB'];
if (size < 1024) return size + 'B';
for (var i = 0; i < unit.length; i++) {
size /= 1024;
if (size < 1024) {
if (size >= 100)
return number_format(Math.round(size)) + unit[i];
else
return Math.round(size*10)/10 + unit[i];
}
}
return number_format(Math.round(size)) + 'YB';
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment