Created
April 4, 2014 13:23
-
-
Save KohsukeHada/9974608 to your computer and use it in GitHub Desktop.
自分のサーバのファイルを取得してファイル サイズをリンク横に出力するスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$("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(' <span class="fileInfo">['+ sExtension + ' ' + 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