var ddzone='f_upload'; //var jqxhr; var jqxhr=new Object(); var fids = []; var upfiles = []; var pcnt=0; var sessid="abqvjb6rvltsa21a8qi0d5ooi2"; var dlurl="https://okurin.bitpark.co.jp/d.php?"; var upurl="fupload.php"; var fsize_limit="500MB"; var fupload_limit="10"; var fqueue_limit="10"; var responserr="ERR"; var responsok="OK"; jQuery.noConflict(); var j$ = jQuery; var queuedCnt=0; var completeCnt=0; var successCnt=0; var fileSizeTotal=0; var progressSize2=0; var fid ; var formid; var selfCancel; var fuploadedCnt=0; var maxfCnt=10; var uploadable; var timer = null; var uperrurl = 'https://okurin.bitpark.co.jp/fuperr.html'; var fsize = function(n) { if(n <= 1024) return (Math.round(n * 10) / 10) + "byte" if(n <= 1024*1024) return (Math.round(n / 1024 * 10) / 10) + "KB" if(n <= 1024*1024*1024) return (Math.round(n / 1024 / 1024 * 10) / 10) + "MB" if(n <= 1024*1024*1024*1024) return (Math.round(n / 1024 / 1024 / 1024 * 10) / 10) + "GB" }; function gaqTrackPV(page_name){ _gaq.push(['_trackPageview', page_name]); } function gaqTrackEvent(category, action, label){ _gaq.push(['_trackEvent', category, action, label]); } function uniteUrlDisplay(){ j$('#united_url').val(""); j$("a.united_url_link").attr('href',""); var cnt = j$("tr:visible[class=uploadedFile]").length; if(cnt > 1){ // j$.post(upurl,{"sessid" : sessid , action:'unit'},function(ret){ // if(ret){ // var url = dlurl + ret; // j$('#united_url').val(url); // j$("a.united_url_link").attr('href',url); // } // }); j$('#unite').show(); j$("#unite_btn").show(); j$('#united_url').hide(); j$("a.united_url_link").hide(); }else{ j$('#unite').hide(); j$("#unite_btn").hide(); } } function deleteButton(obj){ // j$("img.del_btn").css('cursor','pointer').on("click",function(){ var prefix = "fc-"; var fcd = obj.parent('td').parent('tr').attr('id').substring(prefix.length); var fname = j$("#" + prefix + fcd).find("span.upfile_name").text().split(String.fromCharCode(8203)).join(''); if(confirm("アップロードファイル\n「" + fname + "」\nを削除しますか?")){ j$.post(upurl,{"sessid" : sessid , action:'del',code:fcd},function(ret){ if(ret==responsok){ j$('#' + prefix + fcd).hide('fast',function(){ obj.remove(); uniteUrlDisplay(); //ファイル一覧更新 fileTableReload(); //グラフ更新 graphReload(); }); } }); } // }); } function atCon(){ j$.timer(300000, function (timer) { j$.post(upurl,{"sessid" : sessid , action:'atcon'}); }); } function douizumi(){ if(j$('.kiyaku_doui').attr('checked')){ j$(this).attr('checked', "checked"); j$("#step1").slideUp('fast'); j$("#f_upload").show(); j$("div.uploadedFile").show('fast'); j$("#upload_list").show('fast'); }else{ j$(this).attr('checked', ""); j$("#step1").slideDown(); j$("#f_upload").hide(); j$("div.uploadedFile").hide(); j$("#upload_list").hide(); } j$('.kiyaku_doui').click( function(){ if(j$(this).attr('checked')){ j$(this).attr('checked', "checked"); j$("#step1").slideUp('fast'); j$("#f_upload").show(); j$("div.uploadedFile").show('fast'); j$("#upload_list").show('fast'); }else{ j$(this).attr('checked', ""); j$("#step1").slideDown(); j$("#f_upload").hide(); j$("div.uploadedFile").hide(); j$("#upload_list").hide(); } uniteUrlDisplay(); } ); } function getuf(){ j$.getJSON(upurl,{"sessid" : sessid ,'d': new Date().getTime() , action:'getuf'},function(json){ j$.each ( json, function ( row, obj ) { if(obj){ fid = "fc-" + obj.c; j$('#upfile_info').clone().removeAttr('id').attr('id', fid).attr('class', "uploadedFile").insertAfter('#upfile_info').show(); j$("#" + fid).find(".uploaded").show(); j$("#" + fid).find(".uploading").hide(); j$("#" + fid).find("span.upfile_name").html(obj.n); j$("#" + fid).find("span.upfile_size").text(fsize(obj.s)); var url = dlurl + obj.u; j$("#" + fid).find("input.url_txt_box").val(url); j$("#" + fid).find("a.upfile_url_link").attr('href',url); } }); uniteUrlDisplay(); }); } function graphReload(){ j$.post(upurl,{"sessid" : sessid , "action":'graph'},function(ret){ if(ret){ j$("#graph").html(ret); j$("#available_size").text(fsize(j$("#limit_size").text())); } }); } function fileTableReload(){ if(j$("tr:visible[class=uploadedFile]").length > 0){ j$("#nodata_msg").hide(); j$("#upfile_headder").show(); }else{ j$("#nodata_msg").show(); j$("#upfile_headder").hide(); } } j$(function () { j$('#js_alert').hide(); j$('#step1').show(); douizumi(); atCon(); uploadable=true; j$("#upfile_info").hide(); j$("#progressanime").hide(); j$("img.del_btn").css('cursor','pointer').on("click",function(){ deleteButton(j$(this)); }); uniteUrlDisplay(); fileTableReload(); graphReload(); j$("a.united_url_link").on("click",function(){ if (this.href.match("&t") != null){ rep = new RegExp("&t=(\d|\.)+"); this.href = this.href.replace(rep,""); } this.href += "&t=" + parseInt(Math.random()*100); }); j$(".upfile_name").wb(); var fsize = function(n) { if(n <= 1024) return (Math.round(n * 10) / 10) + "byte" if(n <= 1024*1024) return (Math.round(n / 1024 * 10) / 10) + "KB" if(n <= 1024*1024*1024) return (Math.round(n / 1024 / 1024 * 10) / 10) + "MB" if(n <= 1024*1024*1024*1024) return (Math.round(n / 1024 / 1024 / 1024 * 10) / 10) + "GB" }; var selfCancel = false; var selectedFileSizeTotal=0; var bytesLoaded = []; var msg1=j$("#fupmsg").text(); var msg2="ただ今アップロード中です。しばらくお待ちください。"; j$('#select_btn').on('click', function() { if(queuedCnt > 0){ alert(msg2); return false; } j$('#file_select').click(); }); j$('#file_select').on('change', function() { fileUplod(this.files); }); window.addEventListener('dragover', function (event) { event.preventDefault(); }, false); // ドロップ時のイベント document.getElementById(ddzone).addEventListener('drop', function (event) { event.preventDefault(); var dt = event.dataTransfer; return fileUplod(dt.files); }, false); function fileUplod(files){ if(queuedCnt > 0){ alert(msg2); return false; } // console.log('files.length = ' + files.length); if (files.length === 0) { return false; } j$("#fupmsg").text(msg2); // メッセージエリアのメッセージをクリア result = j$('#result'); result.html(''); selectedFileSizeTotal=0; bytesLoaded = []; fids = []; upfiles = []; jqxhr=new Object(); max_size=j$("#limit_size").text(); for (var i = 0; i < files.length; i++) { ///ファイルサイズ合計取得 selectedFileSizeTotal += files[i].size; if(files[i].size > max_size){ alert('アップロードできるのはファイルサイズは合計で' + fsize_limit+'までです。'); init_upload(); return false; } if(selectedFileSizeTotal > max_size){ alert('アップロードできるのはファイルサイズは合計で' + fsize_limit+'までです。'); init_upload(); return false; } if(files.length > fqueue_limit){ alert('同時にアップロードできるのは' + fqueue_limit+'個までです。'); init_upload(); return false; }else{ if(files[i].size > 0){ fid = "ft-" + i + '-' + new Date().getTime() ; fids.push(fid); upfiles.push(files[i]); fileSizeTotal=fileSizeTotal+files[i].size; } } } if(selectedFileSizeTotal===0){ init_upload(); return false; } queuedCnt=fids.length; /// ドロップされたファイルを順次送信 for (i = 0; i < fids.length; i++) { fid =fids[i]; jqxhr[fid] = upload(upfiles[i], fid, i); } return true; } // ファイルアップロード function upload(file, fid, i) { // データを送信する var fd = new FormData(); if(j$("#limit_size").text() < file.size){ alert("【アップロードエラー】ファイルサイズが大きすぎます。\n" + "現在アップロード可能なサイズ:" + fsize(j$("#limit_size").text()) + "\n「" + file.name + "」(ファイルサイズ:" + fsize(file.size) + ")\n" ); uploadable=false; }else{ uploadable=true; } selfCancel = false; if(file_name_check(file.name)&&(uploadable)) { j$("#progressanime").show(); j$("div").find(".uploading").hide; // console.log(' $("#upfile_info").clone() id => ' + fid); j$('#upfile_info').clone().removeAttr('id').attr('id', fid).attr('class', "uploadingFile").insertAfter('#upfile_info').show(); j$("#" + fid).find(".uploaded").hide(); j$("#" + fid).find(".uploading").show(); //////////j$("#" + fid).find("div.progressbar").reportprogress(0); j$("#" + fid).find("div.progressbar").reportprogress(0, '0 / ' + fsize(file.size)); ////j$("#" + fid).find("span.upfile_name").html(file.name); j$("#" + fid).find("span.upfile_name").html(file.name.split('').join(String.fromCharCode(8203))); j$("#" + fid).find("span.upfile_size").html(fsize(file.size)); //「規約に同意する」チェックボックス無効化 // j$('.kiyaku_doui').attr('disabled',true); //「URLまとめる」ボタン無効化 // j$('#unite_btn').attr('disabled',true); j$("#select_btn").attr('disabled',true); j$("#" + fid).find(".cancel").css('cursor','pointer').on("click",function(){ selfCancel = true; tgtid = j$(this).parent('div').parent('div').attr('id'); jqxhr[tgtid].abort(); j$("#" + tgtid).remove(); }); } fd.append("fileup", file, file.name); fd.append("action", 'confirm'); fd.append("sessid", sessid); // ajaxを使用してアップロード var retxhr=j$.ajax(upurl, { xhr : function() { XHR = j$.ajaxSettings.xhr(); if (XHR.upload) { XHR.upload.addEventListener('load',function(e) { completeCnt=completeCnt+1; // console.log('i => ' + i); // console.log('fid => ' + fid); // console.log(file.name + ' => load'); // console.log("転送が完了しました。"); }, false); XHR.upload.addEventListener('loadstart',function(e) { //queuedCnt++; // console.log('i => ' + i); // console.log('fid => ' + fid); // console.log(file.name + ' => loadstart'); // console.log(e.loaded,e.total); }, false); XHR.upload.addEventListener('loadend',function(e) { // console.log(file.name + ' => loadend'); // console.log(e.loaded,e.total); }, false); XHR.upload.addEventListener('abort',function(e) { queuedCnt--; // console.log(file.name + ' => abort'); // console.log(e.loaded,e.total); // console.log('queuedCnt = ' + queuedCnt + ' completeCnt = '+completeCnt + ' successCnt = '+successCnt ); alert('キャンセルされました。'); j$("#" + fid).remove(); if(queuedCnt==0){ init_upload(); } }, false); XHR.upload.addEventListener('error',function(e) { queuedCnt--; // console.log(file.name + ' => error'); // console.log(e.loaded,e.total); // console.log('queuedCnt = ' + queuedCnt + ' completeCnt = '+completeCnt + ' successCnt = '+successCnt ); alert('エラーが発生しました。'); j$("#" + fid).remove(); if(queuedCnt==0){ init_upload(); } }, false); XHR.upload.addEventListener('progress',function(e) { // console.log('i => ' + i); // console.log('fid => ' + fid); // console.log('e.loaded => ' + e.loaded); // console.log('e.total => ' + e.total); progressSize = parseInt(e.loaded / e.total * 10000) / 100; // console.log('progressSize => ' + progressSize); if(progressSize==100){ j$("#" + fid).hide(); } j$("#" + fid).find("div.progressbar").reportprogress( progressSize, ' (' + fsize(e.loaded) + ' / ' + fsize(file.size) + ')'); j$("#" + fid).find("span.upfile_name").text(file.name); var sum_loaded=0; bytesLoaded[i] = e.loaded; bytesLoaded.forEach(function(bytes) { sum_loaded += bytes; }); var total_progre = parseInt(sum_loaded / selectedFileSizeTotal * 10000) / 100; // console.log('sum_loaded => ' + sum_loaded); // console.log('selectedFileSizeTotal => ' + selectedFileSizeTotal); // console.log('total_progre => ' + total_progre); if(total_progre > 100){ total_progre=100; } pcnt++; //console.log(' pcnt => ' + pcnt); if(((pcnt % 1)==0)||((pcnt % 2)==0)||((pcnt % 3)==0)){ var moveto = parseInt((j$("#progressanime").width() - j$("#runokurin").width()) * total_progre / 100 ); j$("#progressanime").find("span.walk").css({"left": moveto + "px"}); if(j$("#runokurin").attr('src') == "/img/common/run_okurin_spring3.gif"){ j$("#runokurin").attr('src',"/img/common/run_okurin_spring1.gif"); }else if(j$("#runokurin").attr('src') == "/img/common/run_okurin_spring2.gif"){ j$("#runokurin").attr('src',"/img/common/run_okurin_spring3.gif"); }else if(j$("#runokurin").attr('src') == "/img/common/run_okurin_spring1.gif"){ j$("#runokurin").attr('src',"/img/common/run_okurin_spring2.gif"); } //console.log(" j$('#runokurin').attr('src') => " + j$("#runokurin").attr('src')); } if(total_progre==100){ j$("#progressanime").fadeOut(); } }, false); } return XHR; }, type: "POST", contentType: false, processData: false, data: fd, //dataType: 'json', error: function (data) { if(queuedCnt == completeCnt){ init_upload(); } }, success: function (data) { var retval = data.split('||'); if (retval[0]!=responserr) { // console.log(' success: fid => ' + fid); // console.log(' retval => ' + retval); gaqTrackEvent( 'fuploaddd' , 'uploadSuccess', 'fileName:'+file.name + ' fileSize:'+fsize(file.size)); /// j$("#" + fid).find("input.url_txt_box").val(retval[1]); /// j$("#" + fid).find("a.upfile_url_link").attr('href',retval[1]); /// j$("#" + fid).find(".uploaded").show(); /// j$("#" + fid).find(".uploading").hide(); /// j$("#" + fid).find("span.upfile_size").html(fsize(file.size)); /// j$("#" + fid).removeAttr('id').attr('id', "fc-" + retval[0]).attr('class', "uploadedFile"); fid = "fc-" + retval[0]; /// j$("#" + fid).remove(); //アップロード済みファイル一覧テーブルに1行追加 j$('#upfile_row').clone().removeAttr('id').attr('id', fid).insertAfter('#upfile_headder').show(); ////j$("#" + fid).find("span.upfile_name").html(file.name); j$("#" + fid).find("span.upfile_name").html(file.name.split('').join(String.fromCharCode(8203))); j$("#" + fid).find("span.upfile_size").html(fsize(file.size)); j$("#" + fid).find("span.upfile_deldate").html(retval[2]); j$("#" + fid).find("span.upfile_dlcnt").html(retval[3]); j$("#" + fid).find("input.url_txt_box").val(retval[1]).attr("title",retval[1]); j$("#" + fid).find("a.upfile_url_link").attr('href',retval[1]); j$("#" + fid).find("img.icon").attr("src","../../img/common/" + retval[4]) j$("#" + fid).find("img.icon").attr("title",retval[5]); j$("#" + fid).find("img.icon").attr("alt",retval[5]); //ファイル一覧更新 fileTableReload(); //グラフ更新 //graphReload(); successCnt++; // console.log('successCnt = '+successCnt ); j$("#" + fid).find("img.del_btn").css('cursor','pointer').on("click",function(){ deleteButton(j$(this)); }); } else{ j$("#" + fid).remove(); gaqTrackEvent( 'fuploaddd' , 'uploadSuccess-Err', 'fileName:'+file.name + ' fileSize:'+fsize(file.size)); alert('アップロード失敗\n「' + file.name + '」\n' + retval[1]); } selfCancel = false; // console.log('queuedCnt = ' + queuedCnt + ' completeCnt = '+completeCnt + ' successCnt = '+successCnt ); if(successCnt == queuedCnt){ uniteUrlDisplay(); init_upload(); if(successCnt > 0){ // console.log('アップロードが完了しました。'); gaqTrackEvent( 'fuploaddd' , 'uploadComplete', 'successCnt:'+successCnt + ' totalSize:'+fsize(fileSizeTotal)); alert("アップロードが完了しました。"); } j$('#dlUrl').showBalloon({ contents:"ファイルを送りたい相手に
このURLをコピーして
メールなどで送って下さい。" , position: "top" , tipSize: 15 , keep: 6000 , onDuration: "slow", onAnimation: function(d) { this.slideDown(d); }, offDuration: "slow", offAnimation: function(d) { this.slideUp(d); }, css: { backgroundColor: "#ffffff", minWidth: "26px", fontSize: '130%', fontWeight: 'bold', lineHeight: '2', color:"#ff0000" , opacity: "null", border:"solid 2px #878787" } }); j$('#dlUrl').hideBalloon(); } } }); return retxhr; } j$("#unite_btn").css('cursor','pointer').click(function(){ var prefix = "fc-"; var fcds =""; j$("tr:visible[class=uploadedFile]").each(function(){ if(fcds=="") {fcds=j$(this).attr("id").substring(prefix.length);} else{fcds = fcds + "-" + j$(this).attr("id").substring(prefix.length);} }); j$.post(upurl,{"sessid" : sessid , "action":'unit', "fcds":fcds},function(ret){ if(ret){ j$('#unite').show(); j$('#united_url').show(); j$("a.united_url_link").show(); var url = dlurl + ret; j$('#united_url').val(url); j$("a.united_url_link").attr('href',url); } }); }); function init_upload(){ j$("#progressanime").hide(); j$("#progressanime").find("span.walk").css({"left": "0px"}); //「規約に同意する」チェックボックス有効化 j$('.kiyaku_doui').attr('disabled',false); //「URLまとめる」ボタン有効化 j$('#unite_btn').attr('disabled',false); j$('#united_url').val(""); j$("a.united_url_link").attr('href',""); j$("#fupmsg").text(msg1); //グラフ更新 graphReload(); j$("#select_btn").attr('disabled',false); pcnt=0; queuedCnt=0; completeCnt=0; successCnt=0; fileSizeTotal=0; fids = []; upfiles = []; jqxhr=new Object(); } }); //ブラウザ情報の取得 dom = document.getElementById; //W3C DOM をサポートする場合 opera = navigator.userAgent.indexOf("Opera")>-1; //Opera ie4 = document.all && !dom && !opera; //Internet Explorer 4.x ie5 = document.all && dom && !opera; //Internet Explorer 5.x 以上 ie = ie4 || ie5; //Internet Explorer 4.x 以上 netscape = navigator.appName.indexOf("Netscape",0)>-1; //Netscape nn4 = document.layers && netscape; //Netscape 4.x nn6 = dom && netscape; //Netscape 6.x 以上 safari = navigator.userAgent.indexOf("Safari")>-1; //Opera var BROWSER; if(opera){ BROWSER="opera"; } if(nn6){ BROWSER="nn6"; } if(safari){ BROWSER="safari"; } if(nn4){ BROWSER="nn4"; } if(ie4){ BROWSER="ie4"; } if(ie5){ BROWSER="ie5"; } if (navigator.platform.search(/win/i) != -1) { var OS="Win"; }else if(navigator.platform.search(/mac/i) != -1) { var OS="Mac"; }else{ var OS="Other"; } function file_name_check(file_name){ var i=file_name.length - 1; var r_file_name = file_name[i]; // if(((BROWSER=="nn6")||(BROWSER=="nn4"))&&(OS=="Mac")){ // alert("ファイル名に日本語を使用している場合、文字化けが発生し、アップロードできないことがございます。\nご注意下さい。"); // } if (file_name.length > 100) { alert("アップロードファイル:「" + file_name + "」\n------------------------------\nファイル名が長すぎます。\n申し訳有りませんがファイル名を変更して下さい。"); return false; } if (file_name.indexOf("%") != -1 || file_name.indexOf("#") != -1) { //alert('r_file_name=' + r_file_name); //alert('unescape(r_file_name)=' + unescape(r_file_name)); alert("アップロードファイル:「" + file_name + "」\n------------------------------\nファイル名に特殊文字「%」「#」は使用できません。\n申し訳有りませんがファイル名を変更して下さい。"); return false; } return true; } //単位付きのファイルサイズに変換。少数点以下3桁までで四捨五入して表示 function fsize_format(size){ var str,kazu,tani ; if(size >= 1073741824){ //str = Math.floor(size / 1073741824) + "GB"; kazu = size / 1073741824; tani = "GB"; }else if(size >= 1048576){ //str = Math.floor(size / 1048576) + "MB"; kazu = size / 1048576; tani = "MB"; }else if(size >= 1024){ //str = Math.floor(size / 1024) + "KB"; kazu = size / 1024; tani = "KB"; }else{ kazu = size; tani = "Byte"; } kazu = (kazu * 1000); kazu = Math.round(kazu); kazu = (kazu / 1000); str = kazu + tani; return str; }