අතීතයේ දී මම මෙය කළ සරලම හා වඩාත්ම ශක්තිමත් ක්රමය නම්, ඔබේ පෝරමය සමඟ සැඟවුණු iFrame ටැගයක් ඉලක්ක කර ගැනීමයි - එවිට එය පිටුව නැවත පූරණය නොකර iframe තුළ ඉදිරිපත් කරනු ඇත.
එනම් ඔබට ප්ලගිනයක්, ජාවාස්ක්රිප්ට් හෝ HTML හැර වෙනත් "මැජික්" භාවිතා කිරීමට අවශ්ය නැතිනම්. ඇත්ත වශයෙන්ම ඔබට මෙය ජාවාස්ක්රිප්ට් සමඟ ඒකාබද්ධ කළ හැකිය හෝ ඔබ සතුව ඇත්තේ කුමක්ද ...
<form target="iframe" action="" method="post" enctype="multipart/form-data">
<input name="file" type="file" />
<input type="button" value="Upload" />
</form>
<iframe name="iframe" id="iframe" style="display:none" ></iframe>
ඔබට onLoad
සේවාදායක දෝෂ හෝ සාර්ථක ප්රතිචාර සඳහා iframe හි අන්තර්ගතය කියවා පරිශීලකයාට ප්රතිදානය කළ හැකිය.
Chrome, iFrames, සහ onLoad
-note- ඔබට උඩුගත කිරීම / බාගත කිරීම සිදු කරන විට UI අවහිර කරන්නෙකු සකසන්නේ කෙසේද යන්න ගැන ඔබ උනන්දුවක් දක්වන්නේ නම් පමණක් කියවීම දිගටම කරගෙන යා යුතුය
දැනට ක්රෝම් ලිපිගොනු මාරු කිරීමට භාවිතා කරන විට අයිෆ්රේම් සඳහා ඔන්ලෝඩ් සිදුවීම අවුලුවන්නේ නැත. ෆයර්ෆොක්ස්, අයිඊ, සහ එජ් යන සියල්ලම ගොනු මාරුවීම් සඳහා වන පැටවීමේ සිදුවීම ගිනි තබයි.
ක්රෝම් සඳහා මා සොයාගත් එකම විසඳුම වූයේ කුකියක් භාවිතා කිරීමයි.
උඩුගත කිරීම / බාගැනීම ආරම්භ කරන විට මූලික වශයෙන් එය කිරීමට:
- [සේවාලාභී පැත්ත] කුකියක පැවැත්ම සොයා ගැනීමට පරතරයක් ආරම්භ කරන්න
- [සේවාදායක පැත්ත] ගොනු දත්ත සමඟ ඔබට අවශ්ය ඕනෑම දෙයක් කරන්න
- [සේවාදායක පැත්ත] සේවාදායක පාර්ශවයේ කාල පරතරය සඳහා කුකියක් සකසන්න
- [සේවාලාභී පැත්ත] අන්තරය කුකිය දකින අතර එය ඔන්ලෝඩ් සිදුවීම මෙන් භාවිතා කරයි. උදාහරණයක් ලෙස ඔබට UI අවහිර කරන්නෙකු ආරම්භ කළ හැකි අතර පසුව පැටවීම (හෝ කුකී සෑදූ විට) ඔබ UI අවහිර කරන්නා ඉවත් කරයි.
මේ සඳහා කුකියක් භාවිතා කිරීම කැත නමුත් එය ක්රියාත්මක වේ.
බාගත කිරීමේදී ක්රෝම් සඳහා මෙම ගැටළුව විසඳීම සඳහා මම jQuery ප්ලගිනයක් සාදන ලදී, ඔබට මෙහි සොයාගත හැකිය
https://github.com/ArtisticPhoenix/jQuery-Plugins/blob/master/iDownloader.js
උඩුගත කිරීම සඳහා ද එකම මූලික විදුහල්පති අදාළ වේ.
බාගැනීම භාවිතා කිරීමට (පැහැදිලිවම JS ඇතුළත් කරන්න)
$('body').iDownloader({
"onComplete" : function(){
$('#uiBlocker').css('display', 'none'); //hide ui blocker on complete
}
});
$('somebuttion').click( function(){
$('#uiBlocker').css('display', 'block'); //block the UI
$('body').iDownloader('download', 'htttp://example.com/location/of/download');
});
සේවාදායක පැත්තේ, ගොනු දත්ත මාරු කිරීමට පෙර, කුකිය සාදන්න
setcookie('iDownloader', true, time() + 30, "/");
ප්ලගිනය මඟින් කුකිය දකිනු ඇත, පසුව onComplete
ඇමතුම් ආපසු ලබා දේ.