অতীতে আমি এটি করার সবচেয়ে সহজ এবং সবচেয়ে দৃ way় উপায়টি হ'ল কেবল আপনার ফর্মের সাথে একটি লুকানো আইফ্রেম ট্যাগটি লক্ষ্যবস্তু করা - তবে এটি পৃষ্ঠাটি পুনরায় লোড না করেই iframe এর মধ্যে জমা দেওয়া হবে।
এটি যদি আপনি এইচটিএমএল ব্যতীত কোনও প্লাগইন, জাভাস্ক্রিপ্ট বা "যাদু" এর অন্য কোনও রূপ ব্যবহার করতে না চান is অবশ্যই আপনি এটি জাভাস্ক্রিপ্টের সাথে একত্রিত করতে পারেন বা আপনার কী আছে ...
<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 এর সামগ্রীগুলি এবং তারপরে ব্যবহারকারীকে আউটপুটও পড়তে পারেন ।
ক্রোম, আইফ্রেমস এবং অন্লোড
-নোট- আপলোড / ডাউনলোড করার সময় আপনি যদি কোনও ইউআই ব্লকার সেটআপ করতে আগ্রহী হন তবে আপনাকে কেবল পড়া চালিয়ে যাওয়া দরকার
ক্রোম যখন ফাইল স্থানান্তর করতে ব্যবহৃত হয় তখন iframe এর জন্য অন্লোড ইভেন্টটি ট্রিগার করে না। ফায়ারফক্স, আইই এবং এজ সবই ফাইল স্থানান্তরের জন্য অলোডলোড ইভেন্টটিকে আগুন ধরিয়ে দেয়।
আমি ক্রোমের জন্য কাজ করেছিলাম এমন একমাত্র সমাধান হ'ল কুকি ব্যবহার করা।
মূলত এটি করতে যখন আপলোড / ডাউনলোড শুরু হয়:
- [ক্লায়েন্ট সাইড] একটি কুকির অস্তিত্ব সন্ধানের জন্য একটি বিরতি শুরু করুন
- [সার্ভার সাইড] ফাইল ডেটা দিয়ে আপনার যা যা প্রয়োজন তা করুন
- [সার্ভার সাইড] ক্লায়েন্টের পাশের ব্যবধানের জন্য কুকি সেট করুন
- [ক্লায়েন্ট সাইড] ইন্টারভাল কুকি দেখে এবং এটি ਆਨ-ইভেন্টের মতো ব্যবহার করে। উদাহরণস্বরূপ আপনি একটি ইউআই ব্লকার শুরু করতে পারেন এবং তারপরে অনলোড (বা কুকি তৈরি হওয়ার পরে) আপনি ইউআই ব্লকারকে সরিয়ে ফেলুন।
এর জন্য কুকি ব্যবহার করা কুৎসিত তবে এটি কার্যকর।
ডাউনলোড করার সময় আমি ক্রোমের জন্য এই সমস্যাটি পরিচালনা করতে একটি jQuery প্লাগইন তৈরি করেছি, আপনি এখানে খুঁজে পেতে পারেন
https://github.com/ArtisticPhoenix/jQuery-Plugins/blob/master/iDownloader.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
কলব্যাকটি ট্রিগার করবে ।