কোনও ফাইলের আসল পথ পান


11

আমি ড্রুপাল ৮-তে একটি এক্সেল রিডিং মডিউল তৈরি করছি public

কোনও ফাইলের আসল পথ পাওয়ার জন্য আমার কোন ফাংশনটি কল করা উচিত?



4
কি দিয়ে পড়ার জন্য? এই পথটি প্রায় সব কিছু নিয়ে কাজ করে, যেমন ফাইল_জেট_কন্টেন্টস ('সর্বজনীন: // ...') ঠিক কাজ করে।
বেরদির

1
আমি ড্রুপাল 8 এর শর্তে উত্তর পেয়েছি এটি হ'ল rup rup দ্রুপল :: পরিষেবা ('ফাইল_সিসটেম') -> রিয়েলপথ ('সর্বজনীন: //2016-03/Places_2.xlsx') `
নিসাম

1
প্রতিক্রিয়া হিসাবে এটি পোস্ট করুন এবং সমাধান হিসাবে এটি গ্রহণ করুন। এটি একই প্রশ্নে অন্যদের সহায়তা করবে।
আরম বায়জায়ান

1
আমারও একই অবস্থা ছিল, তবে ফাইল_সৃজন_আরল দিয়ে শেষ হয়েছে কারণ এটি হ্যান্ডেল করতে পারে managed files (These are files that have either been uploaded by users or were generated automatically (for example through CSS aggregation))এবংshipped files (those outside of the files directory, which ship as part of Drupal core or contributed modules or themes)
ইউজারনেমব্যাক

উত্তর:


16

অবশেষে দ্রুপাল কোডটি খনন করে সমাধান পেয়েছি।
আমরা ফাইল_সিস্টেম পরিষেবা ব্যবহার করে আসল পথ বা পরম পাথ পেতে পারি ।

$absolute_path = \Drupal::service('file_system')->realpath('public://2016-03/Places_2.xlsx');

4
এগুলি কি দ্রুপালের মাধ্যমে ফাইল আপলোড করার জন্য? যদি তারা বাহ্যিকভাবে হোস্ট করা হয় তবে কী হবে? ফাইলসিস্টেম :: রিয়েলপথThe use of this method is discouraged, because it does not work for remote URIs. Except in rare cases, URIs should not be manually resolved.
ইউজারনেমব্যাকের

13

@ নিসামের উত্তরটি সঠিক ছিল তবে এখন এটি অবহেলা করা হয়েছে: ফাংশন দ্রুপাল_রেলপাথ

অসমর্থিত

দ্রুপাল 8.0.x-dev এ, দ্রুপাল 9.0.0 এর আগে সরানো হবে। \ দ্রুপাল \ কোর \ ফাইল \ ফাইলসিস্টেম :: রিয়েলপথ () ব্যবহার করুন।

সুতরাং আপনার ফাইলসিস্টেম :: রিয়েলপথ ব্যবহার করা উচিত ।

উদাহরণ:

$file = File::load($file_id);
$uri = $file->getFileUri();
$stream_wrapper_manager = \Drupal::service('stream_wrapper_manager')->getViaUri($uri);
$file_path = $stream_wrapper_manager->realpath();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.