আমার কি বিষয়বস্তুর ধরণের প্রয়োজন: ফাইল ডাউনলোডের জন্য অ্যাপ্লিকেশন / অকটেট-স্ট্রিম?


414

HTTP- র মান বলেছেন:

যদি এই শিরোনামটি [বিষয়বস্তু-বিশৃঙ্খলা: সংযুক্তি] অ্যাপ্লিকেশন / অক্টেট-স্ট্রিম সামগ্রী-প্রকারের প্রতিক্রিয়া হিসাবে ব্যবহার করা হয় তবে প্রকৃত পরামর্শটি হ'ল ব্যবহারকারী এজেন্টটি প্রতিক্রিয়াটি প্রদর্শন করা উচিত নয়, তবে সরাসরি একটি `সংরক্ষণ প্রতিক্রিয়া প্রবেশ করানো উচিত .. । 'ডায়ালগ।

আমি যে হিসাবে পড়া

Content-Type: application/octet-stream
Content-Disposition: attachment

কিন্তু আমার মনে হয়েছে যে হবে Content-Typeহবে application/pdf, image/pngইত্যাদি

আমি Content-Type: application/octet-streamব্রাউজারগুলি ফাইল ডাউনলোড করতে চাইলে আমার থাকা উচিত?

উত্তর:


959

না।

বিষয়বস্তুর ধরণটি যা জানা তা হওয়া উচিত, যদি আপনি এটি জানেন তবে। application/octet-streamআরএফসি 2046-তে "স্বেচ্ছাসেবী বাইনারি ডেটা" হিসাবে সংজ্ঞায়িত করা হয়েছে এবং এখানে একটি নির্দিষ্ট ওভারল্যাপ রয়েছে যার সত্তার জন্য যার সার্থক উদ্দেশ্যটি ডিস্কে সংরক্ষণ করা যায় এবং সেই জায়গা থেকে কোনও কিছু "ওয়েববি" এর বাইরের হতে পারে for বা অন্য দিক থেকে এটি তাকান; অ্যাপ্লিকেশন / অক্টেট-স্ট্রিমের সাহায্যে নিরাপদে যে কাজটি করা যায় তা হ'ল ফাইলটিতে সংরক্ষণ করা এবং আশা করি এর জন্য কী অন্য কেউ জানে।

আপনি Content-Dispositionঅন্যান্য সামগ্রী-প্রকারের সাথে ব্যবহারের সমন্বয় করতে পারেন , যেমন image/pngবা এমনকি text/htmlপ্রদর্শন করার চেয়ে আপনি সংরক্ষণ করতে চান তা বোঝাতে। এটি এমন কিছু ক্ষেত্রে ব্যবহৃত হত যা কিছু ব্রাউজার ক্ষেত্রে এটিকে উপেক্ষা করবেtext/html তবে আমি মনে করি এটি অনেক আগে এই মুহুর্তে ছিল (এবং আমি শীঘ্রই বিছানায় যাচ্ছি তাই আমি পুরো গোছা পরীক্ষা করতে যাচ্ছি না) এখনই ব্রাউজারগুলি; সম্ভবত পরে)।

আরএফসি 2616 এছাড়াও এক্সটেনশন টোকেনের সম্ভাবনার উল্লেখ করেছে এবং আজকাল বেশিরভাগ ব্রাউজারগুলি বুঝতে inlineপারে যে আপনি যদি সম্ভব সত্তাটি প্রদর্শিত চান তা চান (এটি যদি কোনও ধরণের ব্রাউজার কীভাবে প্রদর্শন করতে জানে, অন্যথায় এটি কোনও পছন্দ পায় না) । এটি অবশ্যই যাইহোক ডিফল্ট আচরণ, তবে এর অর্থ হ'ল আপনি filenameশিরোলেখের অংশটি অন্তর্ভুক্ত করতে পারেন যা ব্রাউজারগুলি ব্যবহার করবে (সম্ভবত কিছু সামঞ্জস্যের ফলে ফাইল-এক্সটেনশনগুলি প্রশ্নের মধ্যে থাকা সামগ্রীর ধরণের জন্য স্থানীয় সিস্টেমের নিয়মগুলির সাথে মেলে, সম্ভবত না) পরামর্শ হিসাবে যদি ব্যবহারকারী সংরক্ষণ করার চেষ্টা করে।

অত: পর:

Content-Type: application/octet-stream
Content-Disposition: attachment; filename="picture.png"

মানে "আমি জানি না এটি কী? দয়া করে এটিকে ফাইল হিসাবে সংরক্ষণ করুন, পছন্দ হিসাবে নাম দেওয়া হয়েছে চিত্র.পিএনজি"।

Content-Type: image/png
Content-Disposition: attachment; filename="picture.png"

মানে "এটি একটি পিএনজি চিত্র। অনুগ্রহ করে এটি ফাইল হিসাবে সংরক্ষণ করুন, পছন্দসই নাম চিত্র.পিএনজি"।

Content-Type: image/png
Content-Disposition: inline; filename="picture.png"

এর অর্থ "এটি একটি পিএনজি চিত্র Please আপনি যদি পিএনজি চিত্রগুলি প্রদর্শন করতে না জানেন তবে অনুগ্রহ করে এটি প্রদর্শিত করুন Otherwise নইলে বা ব্যবহারকারী যদি এটি সংরক্ষণ করতে চান তবে আমরা ফাইল হিসাবে এটি সংরক্ষণ করার জন্য নাম পিকচার করুন .png"

এই ব্রাউজারগুলির মধ্যে যা inlineকিছু সনাক্ত করে তারা সর্বদা এটি ব্যবহার করবে, অন্যরা এটি ব্যবহার করবে যদি ব্যবহারকারী "হিসাবে সংরক্ষণের লিঙ্কটি" নির্বাচন করেন তবে তারা দেখার সময় "সংরক্ষণ" নির্বাচন করেন না (বা কমপক্ষে আইআই এর মতোই ব্যবহৃত হত, এটি) কিছু বছর আগে পরিবর্তিত হতে পারে)।


30
এটি দুর্দান্ত উত্তর ছিল এবং জিনিসগুলি যদি এমনভাবে কাজ করে তবে তা সত্যিই চমৎকার হবে nice তবে দুর্ভাগ্যক্রমে সমস্ত ব্রাউজার বেশিরভাগই নষ্ট হয়ে গেছে। উদাহরণস্বরূপ, গুগল ক্রোম আপনার জন্য একটি "ফাইল সেভ" উইন্ডো খুলবে না যদি কোনও ফর্মের থেকে এটি আপনার প্রতিক্রিয়া হয় তবে "বিষয়বস্তু-বিভাজন: সংযুক্তি", বিষয়বস্তুর ধরণ হিসাবে "অ্যাপ্লিকেশন / অক্টেট-স্ট্রিম" অন্তর্ভুক্ত না করেই । এবং তারপরে তারা একটি বার্তা মুদ্রণ করে বলেছিল যে আপনি আক্রমণে থাকতে পারেন ... এর কোনও উপায় নেই যে আমাকে কোনও ফাইল সংরক্ষণ করতে দেয়। আপনি কেবল একটি ফাইল সংরক্ষণ করতে চাইলেও আপনাকে এক্সডিজি-ওপেন কনফিগার করতে হবে। আমি এ থেকে অসুস্থ।
ডিভাইডবাইজারো

1
@ ডিভিডেবেজার ক্রোম সহ আমার কখনও সমস্যা ছিল না। আপনি যা করছেন তাতে অস্বাভাবিক কিছু আছে কি?
জন হান্না

1
ডিফল্ট এনক্টাইপ দিয়ে একটি ফাইল আপলোড করা ভুল হতে পারে এবং এর ফলে ফলাফলটি কেবলমাত্র ফাইলের সামগ্রী উপলব্ধ করার পরিবর্তে কিছু আক্রমণ সনাক্তকরণকে ট্রিগার করেছিল।
জন হান্না

7
@ যদি ক্লায়েন্ট এটি সংরক্ষণ করতে চায় তবে শিরোনামগুলি কীভাবে প্রেরণ করা যায় তা গুরুত্বপূর্ণ নয় (আপনি আপনার ব্রাউজারে যে কোনও কিছুতে "সংরক্ষণ" করতে পারেন বা "হিসাবে লিঙ্কটি সংরক্ষণ করতে পারেন"), শিরোনামগুলি তথ্য হিসাবে, নিয়মগুলি attachmentযেমন হতে পারে তেমন নয় "এটি নিজেকে প্রদর্শন না করাই সেরা" হিসাবে বিবেচিত এবং " inlineআপনি যদি পারেন তবে এটি নিজেকে প্রদর্শন করার পক্ষে সেরা" হিসাবে বিবেচিত । যে কোনও উপায়ে, বেশিরভাগ ব্রাউজারগুলি ফাইলের নামটি ফাইলের প্রস্তাবিত নাম হিসাবে ব্যবহার করবে, তবে ব্যবহারকারীরা সর্বদা এটির ওভাররাইড করতে পারে।
জন হান্না

1
@ ট্রেডসিন ধন্যবাদ। আমি কিছুটা অপ্রচলিত যে এটি এত জনপ্রিয়, আমার আরও কিছু লোকের তুলনায় আমি আরও ভাল বিবেচনা করব, তবে আমি মনে করি এটি অবশ্যই মানুষের সমস্যার উত্তর দেওয়ার জায়গায় আঘাত পেয়েছে।
জন হান্না
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.