a2h

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

13 پست در این موضوع قرار دارد

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

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

به اشتراک گذاری این پست


لینک به پست

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

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

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

به اشتراک گذاری این پست


لینک به پست

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

اگر بخش 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 سایت خودمو به دست بیارم؟

باز هم ممنون

به اشتراک گذاری این پست


لینک به پست

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

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

به اشتراک گذاری این پست


لینک به پست

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

به اشتراک گذاری این پست


لینک به پست

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

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

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

به اشتراک گذاری این پست


لینک به پست

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

به اشتراک گذاری این پست


لینک به پست

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

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

به اشتراک گذاری این پست


لینک به پست

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

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

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری