PDA

View Full Version : سوال: مشکل در آپلود عکس



PHPOnline
جمعه 09 خرداد 1393, 22:00 عصر
سلام یک فرمی دارم که می خوام تو دیتابیس ذخیره بشه به همراه یک عکس

فرم ها در دیتابیس ذخیره می شه و نمایش داده میشه که مشکلی نیست ، اما برای آپلود عکس چی کار باید کنم که آدرس عکسم در دیتابیس ذخیره بشه و برای نمایش اون از دیتابیس آدرس رو بخونم ؟؟

اینم کدم هست


if (isset($_POST['name'])) {
foreach($_FILES as $photo) { $extension = end(explode('.', $photo['name']));
$photo['name'] = str_replace('.', '-', $photo['name']);
$photo['name'] = str_replace('-' . $extension, '.' . $extension, $photo['name']);
if (in_array($extension,array('jpg','gpeg','jpe'))) {
if ($photo['error'] == 0 && $photo['size'] <= 2000000) {
move_uploaded_file($photo['tmp_name'],'../upload/' . $photo['name']); }}
}
mysql_query("INSERT INTO `shop_uni`.`products` (`productid` ,`catid` ,`name` ,`price` ,`pic`,`description` ,`score`)
VALUES (NULL , '".$_POST['catid']."', '".$_POST['name']."', '".$_POST['price']."','".$_POST['photo']['tmp_name']."', '".$_POST['description']."', '0')");
}



ممنون دوستان :بوس:

مهرداد سیف زاده
جمعه 09 خرداد 1393, 22:10 عصر
اگر با آپلود فایل هیچ مشکلی نداری مثلا فایل در پوشه مورد نظر آپلود میشه
اول اینکه اسم فایل رو اگر هم پوشه بندی هم داره همراه با اسم ئوشه باید در دیتابیس ذخیره کنید. مثلا شما اسم فایل رو دارید با $photo['name' میگیرید.
حالا در زمان خوندن شما اسم فایل رو از دیتابیس دارید و باید آدرس مسیر سایت و دامنه رو بهش بدید تا عکی رو بالا بیار مثلا شما در پوشه www یه پوشه درست کردید بنام upload و فایلهای اونجا آپلود میشه حالا با دستور زیر بهش مسیر میدید



echo '<img src="http://localhost/upload/'.$row['fname'].'" />';


// export
// <img src="http://localhost/upload/myFile.jpg" />

PHPOnline
جمعه 09 خرداد 1393, 22:15 عصر
فایل در فولدر مورد نظر که upload هست کپی می شه و ذخیره می شه ، اما آدرسش رو می خوام در دیتابیس ذخیره کنم نمی تونم

مهرداد سیف زاده
جمعه 09 خرداد 1393, 22:18 عصر
اول که نام فایل رو دارید
فقط کافی تصمیم بگیرید نام فایل رو در دیتابیس ذخیره کنید و در زمان چاپ بهش آدرس سایت و دامنه رو اضافه کنید و یا در همان زمان ذخیره در دیتابیس آدرس کامل رو بص.رت رشته در دیتابیش ذخیره کنید

PHPOnline
جمعه 09 خرداد 1393, 22:21 عصر
اول که نام فایل رو دارید
فقط کافی تصمیم بگیرید نام فایل رو در دیتابیس ذخیره کنید و در زمان چاپ بهش آدرس سایت و دامنه رو اضافه کنید و یا در همان زمان ذخیره در دیتابیس آدرس کامل رو بص.رت رشته در دیتابیش ذخیره کنید
ممنون ، اشتباه من این بود که به جای $_FILES از $_POST استفاده می کردم :خجالت:

حالا اگه بخوام که عکس هم نام ذخیره نشه باید چی کار کنم ؟

مهرداد سیف زاده
شنبه 10 خرداد 1393, 08:25 صبح
پوشه بندی کن یا از مقدار time رو بگیر به نام فایل اضافه کن و در آخر روشی که به seo سایت لطمه میزنه ولی کاملا جلوی نام تکراری رو میگره اینه که از md5 نام فایل و time رو با هم جمع کنی و فایل رو با این نام ذخیره کنی.

poriab
شنبه 10 خرداد 1393, 18:05 عصر
ممنون ، اشتباه من این بود که به جای $_FILES از $_POST استفاده می کردم :خجالت:

حالا اگه بخوام که عکس هم نام ذخیره نشه باید چی کار کنم ؟

می تونید از حروف رندوم استفاده کنید و بچسبونید به اول اسم عکستون و بعد در دیتابیس ذخیره کنید



$str = 'abcdefghklmnoqrts';
$shuffled = str_shuffle($str);