رفتن به مطلب

آپلود فایل کاربران سایت در سرور اف تی پی


پست های پیشنهاد شده

سلام دوستان من میخوام کاربران سایتم فایل هایی که آپلود میکنن از طریق اف تی پی بر روی سرور دیگه آپلود شه و از اونجا فراخانی بشه برای نمایش در اصل نمیخوام سرور سایت رو درگیر فایل ها کنم

دوستان آیا کدی وجود داره ؟ برای این کار

لینک به ارسال

بازم مثل همیشه اولین نفر برای کمک شما بودید ممنونم پارسا جان و باز هم مثل همیشه سوال رو نخونده سرچ کردی و لینک دادی ;)

اول که پست من در بخش چند سایته هست یعنی نمیخوام افزونه باشه چون در این صورت همه به اون دسترسی دارند و تنظیمات اف تی پی رو تغییر میدن و باید بگم که همه این لینک ها که دادید هیچ کدوم بدرد نمیخورد فقط یکی سوال کرده بود شما مثل همین پست من لینک بهشون دادی ;)

ولی بازم ممنون از زحماتت

لینک به ارسال

افزونه همون کد هست

اگر بخش interface دارد میتوانید با current_user_can دسترسی دهید

لینک به ارسال

آقا این آپلود میکنه به واسته این افزونه

http://www.hamyarwp.com/wordpress/%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-ftp-%D8%B3%D8%B1%D9%88%D8%B1-%D8%AF%DB%8C%DA%AF%D8%B1/

ولی یه مشکل اونم این که

ادرس لینک که باید این طوری باشه و هست http://host1.site.com/sites/3/Capture.png ولی فایل ها به این شکل موجود می باشد http://host1.site.com/Capture.png

کد افزونه بالا رو در پایین قرار میدم


function wpse_74180_upload_to_ftp( $args ) {
$upload_dir = wp_upload_dir();
$upload_url = get_option('upload_url_path');
$upload_yrm = get_option('uploads_use_yearmonth_folders');

/**
* Change this to match your server
* You only need to change the those with (*)
* If marked with (-) its optional
*/
$settings = array(
'host' => 'ip or hostname', // * the ftp-server hostname
'user' => 'username', // * ftp-user
'pass' => 'password', // * ftp-password
'cdn' => 'cdn.example.com', // * This have to be a pointed domain or subdomain to the root of the uploads
'path' => '/', // - ftp-path, default is root (/). Change here and add the dir on the ftp-server,
'base' => $upload_dir['basedir'] // Basedir on local
);

/**
* Change the upload url to the ftp-server
*/
if( empty( $upload_url ) ) {
update_option( 'upload_url_path', esc_url( $settings['cdn'] ) );
}

/**
* If uploads is stored like /uploads/year/month
* Remove and use only /uploads/
*/
if( $upload_yrm ) {
update_option( 'uploads_use_yearmonth_folders', '' );
}

/**
* Host-connection
* Read about it here: http://php.net/manual/en/function.ftp-connect.php
*/

$connection = ftp_connect( $settings['host'] );

/**
* Login to ftp
* Read about it here: http://php.net/manual/en/function.ftp-login.php
*/
$login = ftp_login( $connection, $settings['user'], $settings['pass'] );

/**
* Check ftp-connection
*/
if ( !$connection || !$login ) {
die('Connection attempt failed, Check your settings');
}

/**
* Get all files in uploads - local
* Remove hidden-files... mabye better solution
* http://php.net/manual/en/function.scandir.php
*/

$files = preg_grep('/^([^.])/', scandir( $settings['base'] ) );

// Cycle through all source files
foreach ( $files as $file ) {
/**
* If we ftp-upload successfully, mark it for deletion
* http://php.net/manual/en/function.ftp-put.php
*/
if( ftp_put( $connection, $settings['path'] . "/" . $file, $settings['base'] . "/" . $file, FTP_BINARY ) ) {
$delete[] = $file;
}
}

// Delete all successfully-copied files
foreach ( $delete as $file ) {
unlink( $settings['base'] . '/' . $file );
}
}
add_filter( 'wp_generate_attachment_metadata', 'wpse_74180_upload_to_ftp' );

لینک به ارسال

با سلام و احترام ممنون پارسا جان از کمکت من چجوری میتونم مقدار Path سایت خودمو به دست بیارم؟

باز هم ممنون

لینک به ارسال

منظور در سورس افزونه یا تنظیمات هست

این افزونه به نظر در روت هاست آپلود میکنه

لینک به ارسال

پارسا جان کل افزونه همین یک فایله که من اینو تو فانکشن اضافه میکنم جواب میده ولی مشکل بالا هست اگه کمک کنید ممنون میشویم

لینک به ارسال

چون مقدار path در کد بالا / پیش فرض هست و شما احتمالا برای هر زیرسایت استفاده می کنید این مشکل ایجادمیشه

باید این مقدار رو داینامیک بگیرید

<?php global $current_blog; $blog_path = $current_blog->path; echo $blog_path; ?>

لینک به ارسال

به به آقا مرتضی عزیز یعنی این دستور رو بالا دستور خودم بزارم ؟

لینک به ارسال

من هر کاری کردم نشد از این استفاده کنم حتی کد شما رو اول گذاشتم بعد متغیر $blog_path; رو گذاشتم به جای مقدار / path

ولی تغییری ندیدم فک کنم من دارم اشتباه میکنم میشه آقا مرتضی یه مقدار بیشتر توضیح بدید

لینک به ارسال
  • 2 هفته بعد...

با این تغییرات فایل آپلود میشود؟ درچه آدرسی؟

مقدار path را به صورت دستی برای پوشه‌ای تنظیم و تست کنید

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...