ড্রুপাল ফাইল_কপি কাজ করছে না


11

আমার কাছে নিম্নলিখিত কোড রয়েছে:

$main_image = glob('main*.{jpeg,gif,png,jpg,JPEG,JPG,PNG}', GLOB_BRACE);
if (count($main_image) != 1) 
    die("Could not find main picture !");  

$file_path = drupal_realpath($main_image[0]);
$file = (object) array(
            'uid' => $userID,
            'uri' => $file_path,
            'filemime' => file_get_mimetype($file_path),
            'display' => 1,
            'filename' => $main_image[0]
);
// copy the file in the correct folder
$destination = "public://galerii_imagini/" . $file->filename;
 if ($file = file_copy($file, $destination, FILE_EXISTS_REPLACE)) {} else {
    die("Could not copy " . $file_path . " in " . $destination);
}

আমার কোডে কিছু ভুল আছে? আমি সর্বদা শেষ বিবৃতিতে ডাই কমান্ড থেকে বার্তাটি পাই যদি বিবৃতি থাকে।

যে কোন ধরণের সাহায্য গ্রহন করা হবে.

সম্পাদনা: স্ট্যানিস্লাভ আগাপোভকে ধন্যবাদ, আমি দ্রুপাল থেকে লগগুলি পেয়েছি। বার্তাটি হ'ল:

ফাইল .... / main_ROSE2106.JPG অনুলিপি করা যায়নি, কারণ গন্তব্য ডিরেক্টরি জনসাধারণ: // galerii_imagini সঠিকভাবে কনফিগার করা হয়নি।

এটি সঠিকভাবে কনফিগার করতে আমার কী করা উচিত? আমি / অ্যাডমিন / কনফিগার / মিডিয়া / ফাইল-সিস্টেমকে পাথ সাইটগুলি / ডিফল্ট / ফাইলগুলি সর্বজনীন ফাইল হিসাবে সেট করেছি। সেট করার মতো আরও কিছু আছে?

সম্পাদনা # 2: আমি পুরো / সাইটগুলি / ডিফল্ট / ফাইল গাছের জন্য 777 সেট করেছি।


2
ত্রুটির ক্ষেত্রে সিস্টেমে লগতে বার্তা লেখার ক্ষেত্রে file_copyএটি দ্বারা ফাংশন এবং ডাকা হয় file_unmanaged_copy। আপনি কি "সাম্প্রতিক লগ বার্তা" প্রতিবেদনটি দেখেছেন? সম্ভবত আপনি সেখানে উত্তরটি খুঁজে পাবেন ...
স্ট্যানিস্লাভ আগাপভ

আপনার ফাইল ডিরেক্টরিটি লেখার যোগ্য কিনা তা পরীক্ষা করে দেখুন। তা না হলে লেখার অনুমতি দিন।

ফাইল ফোল্ডারের 777 অধিকার রয়েছে।
সেবাস্তিয়ান.রোইবু

কিভাবে ডিরেক্টরি অনুমতি সম্পর্কে /sites/default/files/galerii_imagini?
জিমি কো

2
@ অ্যাপ্লিকারস এটি খুব খারাপ পরামর্শ।

উত্তর:


1

আপনি কি নিশ্চিত যে পথটি sites/default/files/galerii_imagini বিদ্যমান এবং এটি একটি ডিরেক্টরি? আপনি যদি এই ত্রুটিটি দেখতে পান তবে তা যদি না থাকে বা এটি বিদ্যমান থাকে তবে এটি একটি ডিরেক্টরি পরিবর্তে একটি ফাইল। আপনি যদি ড্রুপাল galerii_imaginiডিরেক্টরি তৈরি করার প্রত্যাশা করেন , আপনার কল করার আগে আপনাকে এই লাইনটি যুক্ত করতে হবে file_copy:

file_prepare_directory("public://galerii_imagini", FILE_CREATE_DIRECTORY);

ড্রুপাল 7.x উত্স কোডের অনুসন্ধানের ভিত্তিতে, বার্তাটি File %file could not be copied, because the destination directory %destination is not configured correctly.কেবলমাত্র উত্পাদিত হয় file_unmanaged_copy, যার দ্বারা ডাকা হয় file_copy। এটি file_prepare_directoryপ্রথমে গন্তব্যস্থলটিতে যাওয়ার file_copyপরে কল করে , তারপরে তার মূল ডিরেক্টরিতে directory এটি উভয় কল ব্যর্থ হলেই আপনি যে ত্রুটি বার্তাটি দেখছেন তা তৈরি করে। যেহেতু এটি file_prepare_directoryডিফল্ট পতাকা সহ কল করে, এটি বার্তাটির সাথে ব্যর্থ হতে পারে যদি:

  • গন্তব্য পথ বা এর পিতামাতার ডিরেক্টরি বিদ্যমান নেই
  • গন্তব্য পথ উপস্থিত নেই এবং এর পিতামহুল ডিরেক্টরি বিদ্যমান তবে এটি ডিরেক্টরি নয়
  • হয় গন্তব্য পথ বা এর মূল ডিরেক্টরি বিদ্যমান, এটি একটি ডিরেক্টরি, লেখার যোগ্য নয় এবং এটিকে লেখার যোগ্য করে দেওয়ার অনুমতিগুলি পরিবর্তন করতে ব্যর্থ হয়েছে

তবে সর্বশেষ ক্ষেত্রে, আপনি আপনার প্রশ্নের যে প্রতিবেদন করেছেন তার আগেই আপনি লগে অন্য বার্তাটি দেখতে পাবেন: The file permissions could not be set on %uri.যেহেতু আপনি সেই বার্তাটি দেখেছেন বলে রিপোর্ট করেন নি, আমি কেবলমাত্র ধরে নিতে পারি যে প্রথম দুটি ক্ষেত্রে একটি সঠিক is


"galerii_imagini" বিদ্যমান এবং এটি একটি ডিরেক্টরি। ড্রুপাল দ্বারা লিখনযোগ্য কারণ আমি ম্যানুয়াল গ্যালারী তৈরি করতে পারি যা এই ডিরেক্টরিতে চিত্রগুলি সঞ্চয় করে। কারণ আমি একটি শেয়ার্ড হোস্টিংয়ে আছি এবং অতীতে আমার অধিকারের সমস্যা ছিল আমি নিশ্চিত নই যে আমি ফাইলজিলায় যা দেখছি সেগুলি অধিকার সম্পর্কিত।
sebastian.roibu
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.