実務で使う機会があったので、忘れないように投稿。
html
<a href="" class="js-pdfSize" target="_blank" data-filepath=""><p>PDFダウンロード<span class="file_size">0.0MB</span></p></a>
js
jQuery(function () {
jQuery.each(jQuery(".js-pdfSize"), function () {
b(jQuery(this))
});
function b(d) {
var h = "-";
var g = d.data("filepath");
if (!g) {
d.find(".file_size").html(h);
return
}
var e = g.split(".");
if (e[e.length - 1].toLowerCase() !== "pdf") {
d.find(".file_size").html(h);
return
}
var f = $.ajax({
type: "HEAD",
url: g,
dataType: "text"
}).done(function () {
var i = f.getResponseHeader("Content-Length");
d.find(".file_size").html(c(i))
}).fail(function () {
d.find(".file_size").html(h)
})
}
function c(d) {
if (d < 1024) {
return d + "B"
} else {
d = a(d)
}
if (d < 1024) {
return d + "KB"
} else {
d = a(d)
}
if (d < 1024) {
return d + "MB"
} else {
return a(d) + "GB"
}
}
function a(d) {
return (Math.ceil((d * 10) / 1024)) / 10
}
});
});