ফিডের উপর ভিত্তি করে ফাইলগুলির জন্য কীভাবে পরম পাথ পাবেন


13

ফিডের উপর নির্ভর করে কোনও ফাইলের জন্য আমি কীভাবে পরম পাথ পেতে পারি? দুঃখিত এটি যদি পুনরাবৃত্তি হয় তবে আমি অনুসন্ধান করেছিলাম তবে উত্তরটি খুঁজে পেতে অক্ষম।


আমি $ বেস_উরাল + ফাইলগুলি + ইউরির বাকী পথটি ব্যবহার করে এটির উপায় খুঁজে পেয়েছি এটি কি সেরা উপায়?
রাশ

উত্তর:


35

দ্রুপাল 7

এটি একটি দুটি অংশ প্রক্রিয়া, file_load()এবং ব্যবহার করেfile_create_url()

প্রথমত, আপনাকে $ ফিডটিকে একটি দ্রুপাল ইউআরআইতে রূপান্তর করতে হবে:

$file = file_load($fid);
$uri = $file->uri;

এখন, আপনি এটি একটি URL এ রূপান্তর করতে পারেন

$url = file_create_url($uri);

file_create_url()$base_pathআপনার সংজ্ঞায়িত গ্লোবালটি ব্যবহার করে বা বুটস্ট্র্যাপের সময় ড্রুপাল অনুমান করেছিলেন এমন একটি ব্যবহার করে সর্বদা একটি নিখুঁত URL তৈরি করে ।


1
আমি অবাক হয়েছি আপনাকে কেবল পথটি পেতে ফাইলটি লোড করতে হবে, সম্পদের অপচয় হিসাবে মনে হচ্ছে।
রাশ

2
@ রুস এটি ফাইলের বস্তুটি লোড হচ্ছে, ফাইলটি নয়। আপনি uri পেতে একটি db_query করতেও পারেন, তবে আমি যতটা সম্ভব API ব্যবহার করার চেষ্টা করি।
এমপিডোনাদিও

ধন্যবাদ, আমি বুঝতে পেরেছি, কেবল ভেবেছিলাম একটি পরিষ্কার ফাংশন হবে যা এটি এক ধাপে ফিরিয়ে দিতে পারে। ড্রুপাল ৮-এ বিবেচনা করার জন্য কিছু হতে পারে
রাশ

1
আপনার উদাহরণে আপনার 'ফিল্ড_লোড (id ফিড)' রয়েছে, এটি 'ফাইল_লোড (id ফিড)' হওয়া উচিত।
স্টিভ মুলভিহিল

2
পছন্দ করুন চার + বছর এবং 33 ভোট, এবং কেউ তা লক্ষ্য করে নি।
এমপিডোনাদিও


3

ড্রুপাল 7-এ আপনি ফাইলের সমস্ত ক্ষেত্র লোড করতে না চাইলে আপনি MYSQL কোয়েরিও ব্যবহার করতে পারেন

  $ ফিড = 1; // আপনার ফাইল আইডি
  $ uri = db_select ('file_managed', 'f')
    -> শর্ত ('f.fid', $ fid, '=')
    -> ক্ষেত্র ('চ', অ্যারে ('ইউরি'))
    -> চালানো () -> fetchField ();
  প্রতিধ্বনি ফাইল_সৃজন_আরল ($ ইউরি);

1

এই দুজনই আমার জন্য ড্রুপাল 8 এ কাজ করছে:

// top of file
use Drupal\file\Entity\File;
use Drupal\Core\Url;

// load the file object from some file id
$file_object = File::load(123);

// way 1
$file_uri = $file_object->uri->value;
$file_url = file_create_url($file_uri);

// way 2
$file_uri = $file_object->getFileUri();
$file_url = Url::fromUri(file_create_url($file_uri))->toString();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.