PDA

View Full Version : سوال: بدست آوردن آدرس عكس آپلود شده



numberone1
پنج شنبه 18 فروردین 1390, 02:14 صبح
سلام
من يه اسكريپت آپلود عكس خوب پيدا كردم ميخوام اول موقع آپلود يه عددي تصادفي مثل id به اسمش اضافه كنم و آدرس كاملش كه آپلود شده رو بدست بيارم و توي ديتابيس ذخيره كنم
ممنون ميشم راهنمائي كنيد . لطفا با مثال
مرسي

رضا قربانی
پنج شنبه 18 فروردین 1390, 02:31 صبح
داداش نیازی به آی دی نداری - من ساعت و تاریخ زمانی که آپلود می شه رو چسبوندم به نام عکس و به نظرم اینطوری بهتره تا آی دی بهش بچسبه

فایل تصویر به داخل پوشه upload هدایت می شه و $dir رو باید در بانک ذخیره کنی

اینم کد :


if(!empty($_FILES["pic"]['name']))
{

if( ($_FILES["pic"]["type"]=="image/gif") or ($_FILES["pic"]["type"]=="image/x-png") or ($_FILES["pic"]["type"]=="image/png") or ($_FILES["pic"]["type"]== "image/pjpeg") or ($_FILES["pic"]["type"]=="image/jpeg") or ($_FILES["pic"]["type"]=="image/jpg"))

{

$time = time();

$name=strtolower( $_FILES['pic']['name']);

$ext=$name[strlen($name)-3].$name[strlen($name)-2].$name[strlen($name)-1];

$dir=$name."_".$time.".".$ext;

if(!file_exists("./upload/".$dir))

{
move_uploaded_file($_FILES['pic']['tmp_name'],"../upload/".$dir) or die ("Could not move_uploaded_file");

$pic=true;
}



}
else
{
echo"<meta http-equiv=\"content-Type\" content=\"text/html; charset=utf-8\"><script>alert(\"!! پسوند تصاویر قابل قبول نیست \")</script>";
$dir='';
$pic=false;
}

}

numberone1
شنبه 20 فروردین 1390, 15:33 عصر
با اين كدي كه شما گذاشتين هيچ عكسي آپلود نميشه!!:ناراحت:
هيچ اروري هم نميده. ولي وقتي فولدر upload و چك ميكنم هيچ عكسي توش نيست.

hamed-php
شنبه 20 فروردین 1390, 15:56 عصر
سلام
من يه اسكريپت آپلود عكس خوب پيدا كردم


سلام

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

yakouza
شنبه 20 فروردین 1390, 19:56 عصر
مسیر رو از شاخه ای که فایل آپلودر قرار داره حساب کنید.

numberone1
یک شنبه 21 فروردین 1390, 02:37 صبح
مسیر رو از شاخه ای که فایل آپلودر قرار داره حساب کنید.
فايل آپلودر توي روت هست و فولدر هم كه upload كنارشه!
ولي نميشه

رضا قربانی
یک شنبه 21 فروردین 1390, 12:50 عصر
با اين كدي كه شما گذاشتين هيچ عكسي آپلود نميشه!!:ناراحت:
هيچ اروري هم نميده. ولي وقتي فولدر upload و چك ميكنم هيچ عكسي توش نيست.

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

<input name="pic" type="file" style="width:350px"/>

numberone1
یک شنبه 21 فروردین 1390, 23:43 عصر
آیا نام فایل رو به pic تغییر دادی ؟ خب داداش من همون اول یه شرطی گذاشتم که گفتم از فایل pic پر رود بیاد و عمل ذخیره سازی رو انجام بده در غیر این صورت هیچ اتفاقی پیش نمیاد و انگار که اصلا روی چیزی کلیک نکردی

<input name="pic" type="file" style="width:350px"/>
نام فيلد رو هم تغيير دادم ولي باز هم عكس به پوشه مورد نظر انتقال پيدا نميكنه و هيچ پيغامي هم نشون داده نميشه!!!

numberone1
یک شنبه 21 فروردین 1390, 23:53 عصر
شما اين اسكريپتو امتحان كردين كه درست كار ميكنه يا نه؟؟
من كه هر چي عكس آپلود ميكنم باهاش نه پيغام خطا با جاوا اسكريپتو نشون ميده نه عكس و آپلود ميكنه!!!

رضا قربانی
دوشنبه 22 فروردین 1390, 01:31 صبح
لاین 19 کدی که به شما دادم ../upload/".$dir ===> .. (دو نقطه) یعنی برگرد به یک پوشه قبل و پوشه آپلود رو بخون ، شما این رو به یک نقطه تغییر بدید تا مشکلتون حل بشه

./upload/".$dir

numberone1
دوشنبه 22 فروردین 1390, 01:51 صبح
لاین 19 کدی که به شما دادم ../upload/".$dir ===> .. (دو نقطه) یعنی برگرد به یک پوشه قبل و پوشه آپلود رو بخون ، شما این رو به یک نقطه تغییر بدید تا مشکلتون حل بشه

./upload/".$dir
مرسي ولي مشكلم حل نشده هنوز
من از اين كد استفاده ميكنم


if(isset($_GET['submit'])){
if(!empty($_FILES["pic"]['name'])){
if( ($_FILES["pic"]["type"]=="image/gif") or ($_FILES["pic"]["type"]=="image/x-png") or ($_FILES["pic"]["type"]=="image/png") or ($_FILES["pic"]["type"]== "image/pjpeg") or ($_FILES["pic"]["type"]=="image/jpeg") or ($_FILES["pic"]["type"]=="image/jpg")){
$time = time();
$name=strtolower( $_FILES['pic']['name']);
$ext=$name[strlen($name)-3].$name[strlen($name)-2].$name[strlen($name)-1];
$dir=$name."_".$time.".".$ext;
if(!file_exists("/uploads/".$dir)){
move_uploaded_file($_FILES['pic']['tmp_name'],"/upload/".$dir) or die ("Could not move_uploaded_file");
$pic=true;
}
}else{
echo"<meta http-equiv=\"content-Type\" content=\"text/html; charset=utf-8\"><script>alert(\"!! پسوند تصاویر قابل قبول نیست \")</script>";
$dir='';
$pic=false;
exit();
}
}

عكس: <input name="pic" type="file" style="width:350px"/>

راستي من روي لوكال تست ميكنم

Mr.Moghadam
دوشنبه 22 فروردین 1390, 02:39 صبح
شرط خط 8 رو بردار ببین کار میکنه؟

اگه بدون شرط کار کرد اینجوری ببین کار میکنه


if(!file_exists("uploads/".$dir))

numberone1
دوشنبه 22 فروردین 1390, 18:24 عصر
شرط خط 8 رو بردار ببین کار میکنه؟

اگه بدون شرط کار کرد اینجوری ببین کار میکنه


if(!file_exists("uploads/".$dir))
نميشه :ناراحت:
شما اين اسكريپتو خودتون روي لوكال امتحان كردين كه ببينين كار ميكنه يا نه؟!
اسكريپت ديگه اي سراغ ندارين كه بشه باهاش عكس و آپلود كرد بعد آدرسشو فرستاد تو ديتابيس؟

رضا قربانی
دوشنبه 22 فروردین 1390, 19:38 عصر
بله داداش

تست شده هست ، وگرنه برای شما این کد رو نمی ذاشتم !!!!!

دوست خوبم ، ببین شما اون get رو بردار و اول مشکل آپلود کردنت رو حل کن و سپس بند و مخلفات رو بهش اضافه کن . نوبت به نوبت - شما وقتی هنوز جوابی رو نگرفتید چطور همون اول واسش شرط گذاشتید !!!!!


مطمئن باشید مشکلتون رو آدرس دهی هست ! لاین 8 و 9 آدرس دهی ها باید یکی باشه . یا اصلا کلی آدرس دهی کن ببین جواب می گیری ؟
http://localhost/foolder/upload/

sobhangh
پنج شنبه 25 فروردین 1390, 18:35 عصر
سلام من بعد از همون if اول یه echo گذاشتم ببینم از این رد می شه که نشد!!!!!!!! اسم هم همون که خودت گذاشتی انتخاب کردم اصلا همون کد خودت.
بعدشم با یه دکمه به فایل پی اچ پی وصل میشه کلا از همون اول رد نمیشه و اگه برداریش بعدیش میکه فایل بی فابل .
منظورم اینکه اینگار نمی دونه چیزی بهش اضافه شده!

رضا قربانی
پنج شنبه 25 فروردین 1390, 22:00 عصر
اکشن فورمت رو چی گذاشتی ؟ اسم صفحه ات چیه ؟

sobhangh
جمعه 26 فروردین 1390, 10:52 صبح
up.php مگه مشکلی داره؟
می شناسه. یعنی اگه ارور داشته باشه خبر می ده اما توی کد شما وقتی اولین if خرابه(شرطش برقرار نیست) روی همه کد ها می پره و بدون ارور و بدون هیچ کاری برنامه تموم میشه
من هر جا این کد بود $_FILES بیشنتر به مشکل خوردم.
در ضمن اگه if اول رو حذف کنی خد دوم میگه پسنوند درست نیست که یعنی کلا خالیه انگار!!!!!!!!!!!!
چون نمی فهمه که عکسی اومده با این پسوند

رضا قربانی
جمعه 26 فروردین 1390, 17:28 عصر
up.php مگه مشکلی داره؟
می شناسه. یعنی اگه ارور داشته باشه خبر می ده اما توی کد شما وقتی اولین if خرابه(شرطش برقرار نیست) روی همه کد ها می پره و بدون ارور و بدون هیچ کاری برنامه تموم میشه
من هر جا این کد بود $_FILES بیشنتر به مشکل خوردم.
در ضمن اگه if اول رو حذف کنی خد دوم میگه پسنوند درست نیست که یعنی کلا خالیه انگار!!!!!!!!!!!!
چون نمی فهمه که عکسی اومده با این پسوند


داداش منظور من رو نگرفتی .

می گم این دکمه ای گذاشتی برای ارسال ، آیا داخل فرم هست ؟ آیا فرمت رو به این صفحه ای که گفتی ارسال کردی ؟

ببین اینطوری توی تگ بادی

<form action="up.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input type="file" name="file" />
<input type="submit" name="Submit" value="Submit" />
</form>
و بعد اون دستوراتی که بهت دادم رو در اول صفحه بذار قبل تمامی کدهات .


اگه تونستی درستش کنی که هیچ و اگر نتونستی فایلت رو اینجا قرار بده تا واست ردیفش کنم

sobhangh
جمعه 26 فروردین 1390, 19:47 عصر
سلام اقا دستت درد نکنه من قبلا این رو نمی نوشتمenctype="multipart/form-data"
درست شد خیلی نیاز داشتم.
بابا من کلی pdfخوندم و کلی فیلم دیدم اما هیچی بهم یاد ندادن همش اینکه چطور متغیر تعریف کنی!!!!!!
آقا اگه چند تا مثال خوب داری برام پست کن.
کلا کار با تصاویر و کار های گرافیکی باشه که هیچی بلد نیستم. (و البته هر چیزی که دوست دارید)
البته اگه وقت دارید.
راستی همینجا چطور بررسی کنم که عکس از یه حدی بزرگ تر نباشه و از یه حجمی بیشتر نباشه؟ چون من این رو برای آواتار می خواستم.
راستی یه نکته من این آدرس رو نوشتم:C:\upload اما اون اومد همینجوری تو c ریخت و به پوشه کاری نداشت. دلیلش چیه؟

رضا قربانی
شنبه 27 فروردین 1390, 00:31 صبح
این رو خودم نوشتم و حجم فایل یا تصویر رو برات می زنه و فقط کافیه $Size رو در همراه با نام عکس در بانک ذخیره کنی و دیگه نیازی نیست دستی حجم وارد کنی !!!!!


$size = $HTTP_POST_FILES['file']['size'];

if ($size>999999){
$theDiv = $size / 1000000;
$size = round($theDiv, 1)." مگابایت";
} else {
$theDiv = $size / 1000;
$size = round($theDiv, 1)." کیلوبایت";
}


اون نوع آدرس دهی که شما گفتید اشتباهه !!!!!!!!!!!!
1 : برای اینکه آدرس دهی کنی و بریزی داخل یک پوشه باید تهش رو ببندی !!!! /upload/ اینطوری

2 : آیا توی هاست شما درایو C داری - همیشه توی وب سرورت ذخیره کن

3 : آدرس دهی رو با / انجام بده

numberone1
شنبه 27 فروردین 1390, 00:32 صبح
خوب من action فرمم خاليه ولي هنوز هيچ عكسي ذخيره نميشه!!!
encrypte هم توي فرمم گذاشتم ولي كار نميكنه


<form name="agahi" method="GET" action="" enctype="multipart/form-data">

رضا قربانی
شنبه 27 فروردین 1390, 00:35 صبح
با این می تونی عکسی که آپلود کردی رو پاک کنی :


$pic=$row['pic'];
unlink("../upload/".$pic);

رضا قربانی
شنبه 27 فروردین 1390, 00:38 صبح
خوب من action فرمم خاليه ولي هنوز هيچ عكسي ذخيره نميشه!!!
encrypte هم توي فرمم گذاشتم ولي كار نميكنه


<form name="agahi" method="GET" action="" enctype="multipart/form-data">



عزیز باید به صورت post ارسال کنی به صفحه ای که کدت در اولش وجود داره !!! پست های قبلی رو بخون .

<form name="agahi" method="post" action="نام فایل" enctype="multipart/form-data">

رضا قربانی
شنبه 27 فروردین 1390, 00:46 صبح
تغییر سایز :



function thumbnail($img,$size,$imagebasename,$filetype){
$image = $img ;
$imagebasename="thumb".$imagebasename;
$width = $size[0];
$height = $size[1];
$image_dir = "images/uploaded/product";
$newwidth = 130 ;
$newheight = 90 ;
if($filetype == 'image/pjpeg' ) $src = imagecreatefromjpeg($image);
else if($filetype == 'image/gif' ) $src = imagecreatefromgif($image);
else if($filetype == 'image/jpeg' ) $src = imagecreatefromjpeg($image);
$im = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($im,$src,0,0,0,0,$newwidth,$new height,$width,$height);
imagejpeg($im, "../$image_dir/thumb/$imagebasename");
imagedestroy($im);}


برای تغییر سایز هم توی انجمن سرچ کن

این یک نمونه خوب :
http://barnamenevis.org/showthread.php?259915-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%AF%D8%B1-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86%D8%9F%D8%9F%D8%9F&highlight=%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1+%D8%B3%D8 %A7%DB%8C%D8%B2+%D8%B9%DA%A9%D8%B3

و اینم چند نمونه دیگه

http://snipplr.com/view/27/resize-image/

http://www.phptoys.com/e107_plugins/content/content.php?content.46

http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php

فکر می کنم کافی باشه:لبخند:

موفق باشید دوستان
شب خوش

numberone1
یک شنبه 11 اردیبهشت 1390, 13:59 عصر
تغییر سایز :



function thumbnail($img,$size,$imagebasename,$filetype){
$image = $img ;
$imagebasename="thumb".$imagebasename;
$width = $size[0];
$height = $size[1];
$image_dir = "images/uploaded/product";
$newwidth = 130 ;
$newheight = 90 ;
if($filetype == 'image/pjpeg' ) $src = imagecreatefromjpeg($image);
else if($filetype == 'image/gif' ) $src = imagecreatefromgif($image);
else if($filetype == 'image/jpeg' ) $src = imagecreatefromjpeg($image);
$im = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($im,$src,0,0,0,0,$newwidth,$new height,$width,$height);
imagejpeg($im, "../$image_dir/thumb/$imagebasename");
imagedestroy($im);}


برای تغییر سایز هم توی انجمن سرچ کن

این یک نمونه خوب :
http://barnamenevis.org/showthread.php?259915-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%AF%D8%B1-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86%D8%9F%D8%9F%D8%9F&highlight=%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1+%D8%B3%D8 %A7%DB%8C%D8%B2+%D8%B9%DA%A9%D8%B3

و اینم چند نمونه دیگه

http://snipplr.com/view/27/resize-image/

http://www.phptoys.com/e107_plugins/content/content.php?content.46

http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php

فکر می کنم کافی باشه:لبخند:

موفق باشید دوستان
شب خوش
اين كد و من استفاده كردم ولي ارور ميده
يكم تغييرش دادم اين شكلي شده


function thumbnail($img,$size,$imagebasename,$filetype){
if(!empty($img)){
$image = $img ;
}else{$image = 'upload/imgads/No-Image-Available.gif';
}
$imagebasename="thumb".$imagebasename;
$width = $size[0];
$height = $size[1];
$image_dir = "/upload/imgads";
$newwidth = 130 ;
$newheight = 90 ;
if($filetype == 'image/pjpeg' ) $src = imagecreatefromjpeg($image);
else if($filetype == 'image/gif' ) $src = imagecreatefromgif($image);
else if($filetype == 'image/jpeg' ) $src = imagecreatefromjpeg($image);
$im = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($im,$src,0,0,0,0,$newwidth,$new height,$width,$height);
imagejpeg($im, "$image_dir/thumb/$imagebasename");
imagedestroy($im);}

وقتي $src رو توي برنامم echo ميكنم اين ارور و ميده

arning: imagejpeg() [function.imagejpeg (http://injaa.com/function.imagejpeg)]: Unable to open '/upload/imgads/thumb/thumb1304243490' for writing: No such file or directory in /hom

رضا قربانی
یک شنبه 11 اردیبهشت 1390, 15:27 عصر
نقطه رو در نظر بگیر همیشه .

اگه فولدر توی پوشه قبل قرار داره باید از دونقطه .. استفاده کنی و اگر در همون قسمت هست باید از تک نقطه . استفاده کنی. این قسمت رو یه کم دقت کن و ببین با این کار مشکلت حل می شه


$image_dir = "./upload/imgads";

روی آدرس دهی ها بیشتر دقت کن و احتمال زیاد مشکلت از همین جاهاست

numberone1
یک شنبه 11 اردیبهشت 1390, 17:41 عصر
مرسي درست شد . همون آدرس دهي اشتباه بود.
ولي الان با اينكه هيچ اروري نميده هيچ عكسي هم چاپ نميكنه.
من اينطوري ازش خروجي گرفتم هيچي نمايش نميده .


<?php
thumbnail($src)
?>

ميشه بهم بگين چيكار بايد بكنم؟
يه سئوال ديگه هم داشتم . توي همين فانكشن من يه شرط اضافه كردم اگه ديده باشين كه اگر $img خالي بود آدرس عكس پيش فرض و نمايش بده ولي اون هم درست كار نميكنه !؟؟

رضا قربانی
یک شنبه 11 اردیبهشت 1390, 21:37 عصر
مرسي درست شد . همون آدرس دهي اشتباه بود.
ولي الان با اينكه هيچ اروري نميده هيچ عكسي هم چاپ نميكنه.
من اينطوري ازش خروجي گرفتم هيچي نمايش نميده .


<?php
thumbnail($src)
?>

ميشه بهم بگين چيكار بايد بكنم؟
يه سئوال ديگه هم داشتم . توي همين فانكشن من يه شرط اضافه كردم اگه ديده باشين كه اگر $img خالي بود آدرس عكس پيش فرض و نمايش بده ولي اون هم درست كار نميكنه !؟؟


شما همراه فانکشن این چیزا رو فرستادی $src از کجا اومده ؟


function thumbnail($img,$size,$imagebasename,$filetype)

باید بیشتر توضیح بدی . آیا تصویرت تغییری می کنه ؟ اصلا هیچ عملی رخ می ده ؟

numberone1
یک شنبه 11 اردیبهشت 1390, 22:18 عصر
شما همراه فانکشن این چیزا رو فرستادی $src از کجا اومده ؟


function thumbnail($img,$size,$imagebasename,$filetype)

باید بیشتر توضیح بدی . آیا تصویرت تغییری می کنه ؟ اصلا هیچ عملی رخ می ده ؟
والا $src و كه شما تو اسكريپت ازش استفاده كرده بودي به نظرم اومد بعد از thumb كردن ميريخت توي $src بخاطر همين هم من اين متغير و پرينت كردم!!
براي اين تابع هم پارامتر ها رو اينجوري تعريف كردم
$img همون آدرس عكسه كه از ديتابيس خونده ميشه كه اينم خود شما زحمت كشيدين اسكريپتشو


$img = $rows[3];
$size = array(100, 100);
$imagebasename = time();
$filetype = 'image/jpeg';
thumbnail($img,$size,$imagebasename,$filetype);

اصلا هيچ چيزي توي خروجي چاپ نميشه
خروجي كلا سفيده

numberone1
سه شنبه 13 اردیبهشت 1390, 00:22 صبح
والا $src و كه شما تو اسكريپت ازش استفاده كرده بودي به نظرم اومد بعد از thumb كردن ميريخت توي $src بخاطر همين هم من اين متغير و پرينت كردم!!
براي اين تابع هم پارامتر ها رو اينجوري تعريف كردم
$img همون آدرس عكسه كه از ديتابيس خونده ميشه كه اينم خود شما زحمت كشيدين اسكريپتشو


$img = $rows[3];
$size = array(100, 100);
$imagebasename = time();
$filetype = 'image/jpeg';
thumbnail($img,$size,$imagebasename,$filetype);

اصلا هيچ چيزي توي خروجي چاپ نميشه
خروجي كلا سفيده
چجوري بايد از اين تابع خروجي بگيرم
يكي بگه توروخدا كارم گيره.

رضا قربانی
یک شنبه 25 اردیبهشت 1390, 12:48 عصر
شرمنده چند روزی نبودم - مشکلتون حل شده ؟