কৌনিক ব্যবহার করে একটি ফাইল কেন পাঠানো এত কঠিন? [বন্ধ]


18

আমাকে একটি সার্ভারে একটি ফাইল (খুব বড় ফাইল) প্রেরণ করতে হবে। আমার কাছে কী কী বিকল্প আছে এবং কীভাবে করব তা আমি অধ্যয়ন করছি। আমি কৌণিক + এক্সপ্রেস + নোডেজ ব্যবহার করছি।

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

আমি কৌনিক ব্যবহার করার চেষ্টা করার সাথে সাথে সবকিছু অবিশ্বাস্য জটিল হয়ে ওঠে। অর্থ, আমাকে একটি নির্দেশিকা ব্যবহার করতে হবে, এবং এখনও সার্ভারে সমস্যা আছে। যেমনটি আমি বলেছিলাম যে আমি মাল্টার ব্যবহার করছি, যার জন্য ডেটাটি "মাল্টিপার্ট / ফর্ম-ডেটা" হওয়া দরকার এবং আমি সার্ভারটি থেকে পেয়েছি "ত্রুটি: মাল্টিপার্ট: সীমানা পাওয়া যায় নি"

কৌণিক ফাইলগুলি লোড করার জন্য অনেকগুলি মডিউল রয়েছে। যা দেখায় যে একাধিক সমাধান সহ পুনরাবৃত্তি সমস্যা problem এখন, আমি কোড পোস্ট করতে চাই না কারণ এর জন্য আমি স্ট্যাক ওভারফ্লোতে জিজ্ঞাসা করেছি । আমার প্রশ্নটি আরও সূক্ষ্ম:

কেন একটি সাধারণ ফর্ম দিয়ে কাজ করা যেতে পারে, কৌণিক মধ্যে এত জটিল? আমি এটি খারাপ উপায়ে বলতে চাইছি না। আমি এটি একটি 'আমি বুঝতে চাই' উপায়ে বোঝাচ্ছি।


এটি কোনওভাবে স্ট্যাক ওভারফ্লোতে আপনার সাম্প্রতিক প্রশ্নের সাথে সম্পর্কিত ? "সীমানা খুঁজে পাওয়া যায়নি" এর ত্রুটিটি আমি কীভাবে সমাধান করব এবং এর অর্থ কী ... "
gnat

2
হ্যাঁ, এজন্যই আমি এই লিঙ্কটি প্রশ্নের উপরে রেখেছি। তবে এখানে আমি সমস্যার সমাধান করতে চাই না। আমি প্রথমে কেন এটি সমস্যা তা জানতে চাই।
সতর্কী

উত্তর:


21

কৌণিক একক পৃষ্ঠা অ্যাপ্লিকেশনগুলির জন্য, পৃষ্ঠাটি পুনরায় লোড হওয়া এড়াতে ফর্মগুলি এজেএক্স ব্যবহার করে প্রেরণ করা হয়। এজেএক্সের সাথে মাল্টিপার্ট ফর্মগুলি প্রেরণের জন্য আপনার ব্রাউজারটির FormData(আই 10 10) সমর্থন করা দরকার : http://caniuse.com/#search=FormData

https://developer.mozilla.org/en-US/docs/Web/API/FormData

ngModelইনপুট [টাইপ = "ফাইল"] এর সাথে কাজ করে না, তাই আপনাকে নিজের নির্দেশিকা তৈরি করতে হবে। আপনার নিজস্ব নির্দেশাবলী সহজ হওয়া উচিত: পরিবর্তনের সময়, Fileআপনার সুযোগে একটি অবজেক্ট আপডেট করুন।

আপনার ফর্মটি প্রেরণ করার সময়, একটি FormDataঅবজেক্ট তৈরি করুন এবং এটি ব্যবহার করে FormData.setবা এতে আপনার ফাইল (গুলি) যুক্ত করুন FormData.append। আপনি আপনার ফর্ম্যাটা $httpবা তার সাথে প্রেরণ করতে পারেন $resourceএবং আপনি সামগ্রী-প্রকার এবং সীমানা নির্ধারণের জন্য ব্রাউজারের উপর নির্ভর করছেন।

var formData = new FormData();
formData.append('file', $scope.file);
$http.post('yourUrl', formData, {
   transformRequest: angular.identity,
   headers: {'Content-Type': undefined}
}).then(function () {
   // ...
});

angular.identity অ্যাঙ্গুলারকে আমাদের ডেটাতে যেকোন কিছু করতে বাধা দেয় (যেমন এটি ক্রমিকায়িত করার মতো)।

আমি এই নিবন্ধটি সুপারিশ করছি: https://uncorkedstudios.com/blog/m Multipartformdata-file-upload-with-angularjs


3
আমি ভাবছি কেন ফাইলের নির্দেশিকাটি কৌণিকভাবে বাদ পড়েছে!
ব্যবহারকারী 237944
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.