PDA

View Full Version : سوال: تغییر پوشه فایلهای اپلود شده به پوشه دیگر



/mehdi/
دوشنبه 09 فروردین 1395, 10:04 صبح
سلام خسته نباشید
داخل یه اسکریپت وقتی عکسی اپلود میکنم به پوشه upload/photos/2016/03 میره / حالا هم عکسهای عادی که گذاشته میشه هم آواتارها هم کاور هم بک گراندها
حالا میخوام هر ککدوم از عکسها به پوشه خاصی بره برای مثال اگه اواتار اپلود شده به پوشه اواتار بره مثلا این جوری

upload/avatar/2016/03


بقیه هم به همین شکل یعنی عکسهای کاور بره توی پوشخ کاور بک گراند بره توی بگراند و....

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

139754

Farshid007
سه شنبه 10 فروردین 1395, 04:00 صبح
خب میتونی هنگام انتخاب عکس برای آپلود ی سلکت بزاری که کاربر انتخاب کنه چه عکسی رو داره آپلود میکنه (آواتاره ؟ بک گرانده ؟ ایکون؟ کاوره ؟ چیه؟ ) با توجه به اون عکس آپلود شده رو به پوشه مخصوص خودش جا به جا کنی
این چیزی که فرستادیو دیدم ولی اصن نفهمیدم بره چیه:متعجب:
همش با دستورات SQL بود لوگین موگین میکرد

/mehdi/
سه شنبه 10 فروردین 1395, 08:01 صبح
تشکر از جوابتون ولی فکر نمیکنم مربوط به این موارد باشه
باید بخش ادرس دهی باشه / باید ادرس پوشه جدید داد بهش که من سر در نیوردم / همونطور که گفتم در حال حاظر هر عکس یا کاور یا اواتار یا .... اپلود میکنن در سرور داخل پوشه upload/photos ذخیره میشه / برنامه نویس نیومده جدا کنه که مثلا اواتار بره توی پوشه اواتار و.... امده برای همه عکسها یه پوشه ساخته و ادرس داده

Farshid007
سه شنبه 10 فروردین 1395, 11:49 صبح
خب از کجا بفهمیم که عکسه چیه که برزیمش تو پوشه مخصوصش
باید اول بفهمیم که عکسه چیه
بهترین راهی که به ذهنم میرسه رو عرض کردم
استفاده از یک المان Select در html

/mehdi/
سه شنبه 10 فروردین 1395, 19:23 عصر
تشکر / این بخش از کد رو یه نگاهی بهش بندازید شاید شما چیزی دستگیرتون شد / بازم تشکر


function Wo_UploadImage($file, $name, $type, $user_id = 0, $placement = '') {
global $wo, $sqlConnect;
if (Wo_IsLogged() === false) {
return false;
}
if (empty($file) || empty($name) || empty($type) || empty($user_id)) {
return false;
}
$ext = pathinfo($name, PATHINFO_EXTENSION);
if (!file_exists('upload/photos/' . date('Y'))) {
mkdir('upload/photos/' . date('Y'), 0777, true);
}
if (!file_exists('upload/photos/' . date('Y') . '/' . date('m'))) {
mkdir('upload/photos/' . date('Y') . '/' . date('m'), 0777, true);
}
$allowed = 'jpg,png,jpeg,gif';
$new_string = pathinfo($name, PATHINFO_FILENAME) . '.' . strtolower(pathinfo($name, PATHINFO_EXTENSION));
$extension_allowed = explode(',', $allowed);
$file_extension = pathinfo($new_string, PATHINFO_EXTENSION);
if (!in_array($file_extension, $extension_allowed)) {
return false;
}
$dir = 'upload/photos/' . date('Y') . '/' . date('m');
if ($placement == 'page') {
$image_data['page_id'] = Wo_Secure($user_id);
} else if ($placement == 'group') {
$image_data['id'] = Wo_Secure($user_id);
} else {
$image_data['user_id'] = Wo_Secure($user_id);
}
if ($type == 'cover') {
if ($placement == 'page') {
$query_one_delete_cover = mysqli_query($sqlConnect, " SELECT `cover` FROM " . T_PAGES . " WHERE `page_id` = " . $image_data['page_id'] . " AND `active` = '1' ");
} else if ($placement == 'group') {
$query_one_delete_cover = mysqli_query($sqlConnect, " SELECT `cover` FROM " . T_GROUPS . " WHERE `id` = " . $image_data['id'] . " AND `active` = '1'");
} else {
$query_one_delete_cover = mysqli_query($sqlConnect, " SELECT `cover` FROM " . T_USERS . " WHERE `user_id` = " . $image_data['user_id'] . " AND `active` = '1' ");
}
$fetched_data = mysqli_fetch_assoc($query_one_delete_cover);
$filename = $dir . '/' . Wo_GenerateKey() . '_' . date('d') . '_' . md5(time()) . '_cover.' . $ext;
$image_data['cover'] = $filename;
if (move_uploaded_file($file, $filename)) {
$update_data = false;
if ($placement == 'page') {
$update_data = Wo_UpdatePageData($image_data['page_id'], $image_data);
} else if ($placement == 'group') {
$update_data = Wo_UpdateGroupData($image_data['id'], $image_data);
} else {
$update_data = Wo_UpdateUserData($image_data['user_id'], $image_data);
if ($update_data) {
$last_file = $filename;
$explode2 = @end(explode('.', $filename));
$explode3 = @explode('.', $filename);
$last_file = $explode3[0] . '_full.' . $explode2;
@Wo_CompressImage($filename, $last_file, 80);
$regsiter_cover_image = Wo_RegisterPost(array(
'user_id' => Wo_Secure($image_data['user_id']),
'postFile' => Wo_Secure($last_file, 0),
'time' => time(),
'postType' => Wo_Secure('profile_cover_picture'),
'postPrivacy' => '0'
));
}
}
if ($update_data == true) {
Wo_Resize_Crop_Image(1000, 400, $filename, $filename, 80);
return true;
}
return true;
}
} else if ($type == 'avatar') {
$filename = $dir . '/' . Wo_GenerateKey() . '_' . date('d') . '_' . md5(time()) . '_avatar.' . $ext;
$image_data['avatar'] = $filename;
if (move_uploaded_file($file, $filename)) {
if ($placement == 'page') {
$update_data = Wo_UpdatePageData($image_data['page_id'], $image_data);
Wo_Resize_Crop_Image(400, 400, $filename, $filename, 60);
return true;
} else if ($placement == 'group') {
$update_data = Wo_UpdateGroupData($image_data['id'], $image_data);
Wo_Resize_Crop_Image(400, 400, $filename, $filename, 60);
return true;
} else {
$image_data['startup_image'] = 1;
if (Wo_UpdateUserData($image_data['user_id'], $image_data)) {
$explode2 = @end(explode('.', $filename));
$explode3 = @explode('.', $filename);
$last_file = $explode3[0] . '_full.' . $explode2;
@Wo_CompressImage($filename, $last_file, 80);
$regsiter_image = Wo_RegisterPost(array(
'user_id' => Wo_Secure($image_data['user_id']),
'postFile' => Wo_Secure($last_file, 0),
'time' => time(),
'postType' => Wo_Secure('profile_picture'),
'postPrivacy' => '0'
));
Wo_Resize_Crop_Image(500, 500, $filename, $filename, 80);
return true;
}
}
}
} else if ($type == 'background_image') {
$query_one_delete_background_image = mysqli_query($sqlConnect, " SELECT `background_image` FROM " . T_USERS . " WHERE `user_id` = " . $image_data['user_id'] . " AND `active` = '1' ");
$fetched_data = mysqli_fetch_assoc($query_one_delete_background_im age);
$filename = $dir . '/' . Wo_GenerateKey() . '_' . date('d') . '_' . md5(time()) . '_background_image.' . $ext;
$image_data['background_image'] = $filename;
if (move_uploaded_file($file, $filename)) {
if (isset($fetched_data['background_image']) && !empty($fetched_data['background_image'])) {
@unlink($fetched_data['background_image']);
}
if (Wo_UpdateUserData($image_data['user_id'], $image_data)) {
return true;
}
}
}
}

Farshid007
چهارشنبه 11 فروردین 1395, 05:10 صبح
بله دستگیرم شد
اونجایی که داره بررسی میکنه type چی هست
برای مثال

if ($type == 'cover')
داخل این بلاک رو نگا کن

$filename = $dir . '/' . Wo_GenerateKey() . '_' . date('d') . '_' . md5(time()) . '_cover.' . $ext;
این آدرسی هست که قرار فایل اونجا اپلود بشه
باید شما اینو دست کاری کنی
اگه میخوایی کاور ها برن تو پوشه Cover باید بعد از اونجایی که متغیر dir بهش کانکت شده اسم پوشرو تصحیح کنید
مثلا اینجوریش کنید:

$filename = $dir . '/Covers/' . Wo_GenerateKey() . '_' . date('d') . '_' . md5(time()) . '_cover.' . $ext;
و بطور مشابه بلاک های مربوط به دیگر تایپ هارو تصحیح کنید

/mehdi/
چهارشنبه 11 فروردین 1395, 16:06 عصر
سلام باز هم تشکر / این کار جواب داد ممنون
امدم مثل همون متغیر
$dirمنم چنتا متغیر درست کردم و ادرس جدید پوشها رو دادم ولی یه مشکل پیش امده قسمت اواتار و کاور درست عمل میکنه ولی قسمت بکگراند وقتی عکس بگ گراند رو اپلود میکنم به همون پوشه که ای ادرس دادم عکس اونجا اپلود میشه ولی داخل
سایت بک گراند رو نمایش نمیده/ممنون میشم راهنمایی کنید




$dirbackground = 'upload/background/' . date('Y') . '/' . date('m');



} else if ($type == 'background_image') {
$query_one_delete_background_image = mysqli_query($sqlConnect, " SELECT `background_image` FROM " . T_USERS . " WHERE `user_id` = " . $image_data['user_id'] . " AND `active` = '1' ");
$fetched_data = mysqli_fetch_assoc($query_one_delete_background_im age);
$filename = $dirbackground . '/' . Wo_GenerateKey() . '_' . date('d') . '_' . md5(time()) . '_background_image.' . $ext;
$image_data['background_image'] = $filename;
if (move_uploaded_file($file, $filename)) {
if (isset($fetched_data['background_image']) && !empty($fetched_data['background_image'])) {
@unlink($fetched_data['background_image']);
}
if (Wo_UpdateUserData($image_data['user_id'], $image_data)) {
return true;
}
}
}
}

Farshid007
پنج شنبه 12 فروردین 1395, 05:06 صبح
خب این مشکلو باید تو کد های CSS دنبالش بگردید
احتمالن اونجایی که بک گراند تعریف شده آدرسش به همون آدرس قبلی است

/mehdi/
پنج شنبه 12 فروردین 1395, 12:31 عصر
سلام توی فایلهای css نبود ولی کد مربوط بهش رو پیدا کردم ولی نمیدونم چطور ادرسش عوض کنم این کد هست بخش استایل


<?php echo Wo_LoadPage('modals/profile-picture');?>
<?php echo Wo_LoadPage('modals/cover-image');?>
<?php if (!empty($wo['user_profile']['background_image']) && $wo['user_profile']['background_image_status'] == 1) { ?>
<style>
body {
background: url(<?php echo $wo['user_profile']['background_image']; ?>) fixed;
background-size:100% auto;
}
</style>
<?php } ?>

Farshid007
جمعه 13 فروردین 1395, 06:52 صبح
خوب اینم کد سی اس اس دیگه منم گفتم کد css ن فایل css
حالا اینکه تو فایل CSS نیستش بخاطر اینه که بتونه از کد های PHP هم استفاده کنه
باید بری دنبال اونی که سیو میکنه بک گراند کجا باشه

$wo['user_profile']['background_image']


ارایه دو بعدی که اطلاعات یوزر پروفایل رو توش ذخیر کردن
باید بگردی دنبال کدی که اینو پرش کرده

/mehdi/
جمعه 13 فروردین 1395, 07:45 صبح
تشکر / ولی متوجه نشده یعنی باید دنبال یه فانکشن بگردم؟ اگه اره باید دنبال چی بگردم فانکشنی که مربوط به پروفایل باشه یا مربوط به بک گراند ؟
این کلمه رو جستجو کرم user_profile چیزی پیدا نکردم ولی
یه فانکشن دیگه توی همون فایل که ضمیمه کردم پیدا کردم ولی نمیدونم خودشه با مربوط به چیز دیگه ای هست/ممنون میشم یه نگاهی بهش بندازید و راهنمایم کنید


function Wo_UploadBackground($data = array()) {
global $wo, $sqlConnect;
if (isset($data['file']) && !empty($data['file'])) {
$data['file'] = Wo_Secure($data['file']);
}
if (isset($data['name']) && !empty($data['name'])) {
$data['name'] = Wo_Secure($data['name']);
}
if (isset($data['name']) && !empty($data['name'])) {
$data['name'] = Wo_Secure($data['name']);
}
if (empty($data)) {
return false;
}
$allowed = 'jpg,png,jpeg,gif';
$new_string = pathinfo($data['name'], PATHINFO_FILENAME) . '.' . strtolower(pathinfo($data['name'], PATHINFO_EXTENSION));
$extension_allowed = explode(',', $allowed);
$file_extension = pathinfo($new_string, PATHINFO_EXTENSION);
if (!in_array($file_extension, $extension_allowed)) {
return false;
}
$dir = "themes/" . $wo['config']['theme'] . "/img/backgrounds/";
$filename = $dir . "background-1.{$file_extension}";
if (move_uploaded_file($data['file'], $filename)) {
if (Wo_SaveConfig('background_extension', $file_extension)) {
return true;
}
}
}

Farshid007
جمعه 13 فروردین 1395, 15:55 عصر
تشکر / ولی متوجه نشده یعنی باید دنبال یه فانکشن بگردم؟ اگه اره باید دنبال چی بگردم فانکشنی که مربوط به پروفایل باشه یا مربوط به بک گراند ؟
این کلمه رو جستجو کرم user_profile چیزی پیدا نکردم ولی
یه فانکشن دیگه توی همون فایل که ضمیمه کردم پیدا کردم ولی نمیدونم خودشه با مربوط به چیز دیگه ای هست/ممنون میشم یه نگاهی بهش بندازید و راهنمایم کنید


function Wo_UploadBackground($data = array()) {
global $wo, $sqlConnect;
if (isset($data['file']) && !empty($data['file'])) {
$data['file'] = Wo_Secure($data['file']);
}
if (isset($data['name']) && !empty($data['name'])) {
$data['name'] = Wo_Secure($data['name']);
}
if (isset($data['name']) && !empty($data['name'])) {
$data['name'] = Wo_Secure($data['name']);
}
if (empty($data)) {
return false;
}
$allowed = 'jpg,png,jpeg,gif';
$new_string = pathinfo($data['name'], PATHINFO_FILENAME) . '.' . strtolower(pathinfo($data['name'], PATHINFO_EXTENSION));
$extension_allowed = explode(',', $allowed);
$file_extension = pathinfo($new_string, PATHINFO_EXTENSION);
if (!in_array($file_extension, $extension_allowed)) {
return false;
}
$dir = "themes/" . $wo['config']['theme'] . "/img/backgrounds/";
$filename = $dir . "background-1.{$file_extension}";
if (move_uploaded_file($data['file'], $filename)) {
if (Wo_SaveConfig('background_extension', $file_extension)) {
return true;
}
}
}

وای چقد پیچیدن اینا
اینا به نظر میرسه که برای آپلود عکس بک گرانده باشه
شما گفتی عکس تو اون پوشه مورد نظر آپلود شده فقط تو سایت به نمایش در نمیاد
بعید میدونم ربطی به اینا داشته باشه
بهتره بگردید دنبال همون متغیری که گفتم
اون متغیر از کجا اومده؟؟؟؟؟؟

/mehdi/
یک شنبه 15 فروردین 1395, 12:46 عصر
پسوند عکس رو نشون نمیده برای همین توی سایت به نمایش در نمیاد
توی پوشه مورد نظر اپلود میشه توی پوشه پسوندش هست ولی توی سایت موقع نمایش پسوند عکس نمیاد

/mehdi/
یک شنبه 15 فروردین 1395, 13:21 عصر
داداش فهمیدم مشکل چیه ولی فعلا نتونستم مشکل رو حل کنم.مربوط میشه به پسوند عکس میشه
وقتی همون متغیر قبلی رو قرار میدم عکس توی سایت نمایش داده میشه ولی وقتی ادرسه پوشه جدید رو میدم عکس نمایش نمیده / مسیر عکس رو نشون میده ولی چون پسوند عکس رو نشون نمیده عکس توی سایت نمایش داده نمیشه به این صورت میشه


این وقتی که از خود متغییر که برنامه نویس داده استفاده میکنم

rgba(0, 0, 0, 0) url("upload/photos/2016/04/WXawl6Dg3J7zLCipAXsE_03_b498eafe13696c16a59d871ea8 9891a7_background_image.jpg") repeat fixed 0 0 / 100% auto


این وقتیه که از متغییری که خودم تعریف کردم برا اینکه عکس توی پوشه مورد نظرم اپلود بشه


rgba(0, 0, 0, 0) url("upload/background/2016/04/ZO5iy89YbYU25TkNELGp_03_2ee8c1a50e37418149e66bbf9f 945645_background_image.") repeat fixed 0 0 / 100% auto


عکس به همون مسیری که میخوام میره ولی تنها فرقش اینه که پسوند عکس یعنی jpg رو نشون نمیده برای همین عکس توی سایت نمایش داده نمیشه/ولی نمیدونم برا چی پسوند رو نشون نمیده
من تنها کاری که کردم این بوده که یه متغیر درست کردم

متغیر برنامه نویس این بوده

$dir = 'upload/photos/' . date('Y') . '/' . date('m');

بع من امدم یه متغیر دیگه درست کردم به این شکل

$dirbackground = 'upload/background/' . date('Y') . '/' . date('m');

بعد فقط توی قسمت بگ گراند من بجای متغیر dir متغیر
dirbackground
رو گذاشتم / این تنها تغیر بود ولی چرا پسوند عکس رو نشون نمیده ؟

Farshid007
دوشنبه 16 فروردین 1395, 03:53 صبح
این کد دومی که که دادی
این:

rgba(0, 0, 0, 0) url("upload/background/2016/04/ZO5iy89YbYU25TkNELGp_03_2ee8c1a50e37418149e66bbf9f 945645_background_image.") repeat fixed 0 0 / 100% auto
تو url چرا آخرش فرمت (پسوند) نداره؟؟
css اینجوری عکسو نشون نمیده
یک کاراکتر کم و زیاد بشه دیگه عکس نشون داده نمیشه
ZO5iy89YbYU25TkNELGp_03_2ee8c1a50e37418149e66bbf9f 945645
اینا چین دیگه اصن؟؟
کد هش شدس؟؟؟:متفکر::متفکر:

/mehdi/
دوشنبه 16 فروردین 1395, 10:07 صبح
اره داداش مشگل همینه
این کد رو از داخل فایر باگ مرورگر در اوردم / فایر باگ باز کردم ببینم شکل چیه دیدم کد اینجوری نشون میده دیدم پسوند نداره

حالا این کد بر میگرده به این قسمت

} else if ($type == 'background_image') {
$query_one_delete_background_image = mysqli_query($sqlConnect, " SELECT `background_image` FROM " . T_USERS . " WHERE `user_id` = " . $image_data['user_id'] . " AND `active` = '1' ");
$fetched_data = mysqli_fetch_assoc($query_one_delete_background_im age);
$filename = $dirbackground . '/' . Wo_GenerateKey() . '_' . date('d') . '_' . md5(time()) . '_background_image.' . $ext;
$image_data['background_image'] = $filename;
if (move_uploaded_file($file, $filename)) {
if (isset($fetched_data['background_image']) && !empty($fetched_data['background_image'])) {
@unlink($fetched_data['background_image']);
}
if (Wo_UpdateUserData($image_data['user_id'], $image_data)) {
return true;
}
}
}
}


که مربوط به این خط هست

$filename = $dirbackground . '/' . Wo_GenerateKey() . '_' . date('d') . '_' . md5(time()) . '_background_image.' . $ext;

تا قسمت
_background_image. کد رو نشون میده توی سایت ولی پسوند رو نه / پسوند هم مربوط میشه به متغیر $ext / این متغیر رو هم سرچ کردم این کد رو پیدا کردم


$ext = pathinfo($name, PATHINFO_EXTENSION);


همه این کدها توی همون کد اولی هست که اون بالا داد توی پست پنجمم

Farshid007
دوشنبه 16 فروردین 1395, 13:29 عصر
خوب این متغیر ست شده و به اون رشته آدرس کانکت شده دیگه
اما کی به اون کد سی اس اس کانکت میشه؟؟؟؟
اگه کانکت نشه هیچ وقت عکسو نشون نمیده!!!
اون کدهای اصلیو یبار وردار
از کد سی اس اس شروع کن برو دنبال بک گراند
یخورده وربری فکر کنم درست شه ها
یچی این وسط میلگنهه
:گریه:کی نوشته اینو؟
چرا اینقد پی چونده؟؟؟؟؟

/mehdi/
دوشنبه 16 فروردین 1395, 20:31 عصر
تشکر / داداش فک نکنم مشکل از کد سی اس اس باشه / کد سی اس اسش رو توی تایپ 9 نوشتم که گفتید برم دنبال دوتا ارایه ولی خب مشکل از ارایها هم هنبود مشکل فقط همون نشون ندادن پسوند هست

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

Farshid007
سه شنبه 17 فروردین 1395, 05:16 صبح
میشه کامل آپلودش کنی ی نگاه بندازم ؟

/mehdi/
سه شنبه 17 فروردین 1395, 07:58 صبح
براتون خصوصی همه چیزا رو رفستادم