(পরিচালনা না করা) ফাইল বিদ্যমান কিনা তা কীভাবে পরীক্ষা করবেন?


18

আমি ডি 7-তে একটি ড্রুপাল এপিআই ফাংশন খুঁজে পাই না যা আমাকে জানায় যে কোনও (পরিচালনা না করা) ফাইল উপস্থিত রয়েছে কিনা। ডি 6 এর ফাইল-চেক_লোকেশন ছিল তবে 7 এর জন্য নয়।

(পরিচালনা না করা) ফাইল বিদ্যমান কিনা তা কীভাবে পরীক্ষা করবেন?

উত্তর:


35

file_exists()আমি আপনাকে সঠিকভাবে বুঝতে পারলে আপনি কেবল পুরানো বগ স্ট্যান্ডার্ড পিএইচপি ফাংশনটি ব্যবহার করতে পারেন:

$uri = 'public://images/an-image.jpg';
if (file_exists($uri)) {
  // Do something
}

এটি স্বাভাবিক (পরম) পাথের জন্যও কাজ করে, যেমন:

$path = '/var/www/drupal/sites/default/files/images/an-image.jpg';
if (file_exists($path)) {
  // Do something
}

আবার উদ্ধার করতে ক্লাইভ, ধন্যবাদ! আমি কি আপনাকে ভাড়া করতে পারি? ;-)
uwe

6
@ মোটোট্রিবি আপনি কতটা অফার করছেন তা নির্ভর করে;)
ক্লাইভ

কেন এই কাজ করে? আমি কেবল এটি সরল পিএইচপি এবং একটি স্ট্রিম হ্যান্ডেল thrownোকানো দিয়ে পরীক্ষা করেছি file_exists()এবং এটি কার্যকর হয় না । কোন ব্যাখ্যা?
কায়সার

কারণ স্ট্রিমগুলি সঠিকভাবে দ্রুপাল @ কাইজার দ্বারা নিবন্ধিত হয়েছে। Php.net/manual/en/wrappers.php
ক্লাইভ

@ ক্লাইভ আমি আশা করি আপনি আমাকে দ্রুপালের উত্সের দিকে নির্দেশ করতে পারেন। বাকি আমি জানি এবং একটি সরল পিএইচপি পরীক্ষায় কাজ করতে পারি না, তাই আমি জিজ্ঞাসা করেছি। সম্পাদনা করুন: এনভিএম, সেগুলি খুঁজে পেয়েছে
কায়সার

3

আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে কী তা আমি জানি না, তবে ফাইলটি বিদ্যমান কিনা তা দেখার জন্য আপনাকে পরীক্ষা করার প্রয়োজন হতে পারে না।

ফাইল_ম্যানেজড_কপি, ফাইল_ম্যানেজড_মোভ, ফাইল_ম্যানেজড_ডিলিট, ফাইল_ম্যানেজড_ডিলিট_ রিসার্সিভ, এবং ফাইল_মুনেজেজ_সেভ_ডেটা ফাইল উপস্থিত রয়েছে কিনা তা পরীক্ষা করে দেখুন এবং তা না হলে মিথ্যা ফিরিয়ে দিন।

আপনি ড্রপাল / অন্তর্ভুক্ত / file.inc এ উত্স কোডটি খুঁজে পেতে পারেন এবং দেখতে পারেন।


3

আপনার ড্রুপাল ফাংশনটি ব্যবহার করা উচিত:

ফাইল_ডেসটিনেশন ($ uri, FILE_EXISTS_ERROR)

এবং পরীক্ষা করুন

if (!file_destination($uri, FILE_EXISTS_ERROR)) {
  // The file exist
  // Do something
} 

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