PDA

View Full Version : مبتدی: ذخیره تصاویر با فرمت png,gif و jpg



boof1364
جمعه 03 مرداد 1393, 13:13 عصر
سلام دوستان.من تکه کدی دارم که عکس را از کاربر می گیره و در پوشه ای در مسیر برنامه ذخیره می کنه.اینم کدشه.

if($file['error']==0 && is_uploaded_file($file['tmp_name']))
move_uploaded_file ($file['tmp_name'],"pics/$id.jpg");

اما حالا می خواهم بتونه کاربر یکی از سه فرمت jpg,png,gif را بتونه بارگذاری کنه.چکار باید انجام بدم؟

hamedarian2009
جمعه 03 مرداد 1393, 14:09 عصر
سلام دوستان.من تکه کدی دارم که عکس را از کاربر می گیره و در پوشه ای در مسیر برنامه ذخیره می کنه.اینم کدشه.

if($file['error']==0 && is_uploaded_file($file['tmp_name']))
move_uploaded_file ($file['tmp_name'],"pics/$id.jpg");

اما حالا می خواهم بتونه کاربر یکی از سه فرمت jpg,png,gif را بتونه بارگذاری کنه.چکار باید انجام بدم؟

http://www.w3schools.com/php/php_file_upload.asp

boof1364
جمعه 03 مرداد 1393, 15:28 عصر
http://www.w3schools.com/php/php_file_upload.asp

خوب اگه بخواهم حالا نشونش بدم چی.کد من برای یک نوع فایل اینه:

while ($row1 = mysqli_fetch_assoc($query1)) {
echo "<img src='pics/$row1[id].jpg' height='100' width='100'>";

ولی برای انواع دیگه چی؟

vahidqara
جمعه 03 مرداد 1393, 16:23 عصر
سلام و درود ... یه نوع فیلتر گزاری هست دیگه..
یه آرایه تعریف کن که سه تا از این فرمت ها داخلش باشه (jpg,png,jpge ) بعد پسوند فایل ورودی رو باهاش چک میکنی اگه درست باشه آپلود شه اگه نه خطا بده

boof1364
جمعه 03 مرداد 1393, 16:53 عصر
سلام و درود ... یه نوع فیلتر گزاری هست دیگه..
یه آرایه تعریف کن که سه تا از این فرمت ها داخلش باشه (jpg,png,jpge ) بعد پسوند فایل ورودی رو باهاش چک میکنی اگه درست باشه آپلود شه اگه نه خطا بده

ببینید من قسمت آپلود را انجام دادم.حالا می خواهم عکس ها را نشون بدم(با هر فرمتی)برای این کار باید چکار کنم؟

vahidqara
جمعه 03 مرداد 1393, 17:05 عصر
خوب عزیزم .. با یه تگ img بزار و بعد آدرس اونجای که ذخیره شده رو بهش بده دیگه...

یه حلقه for میزاری بعد آدرس + نام فایل آپلود شده رو بزار تو تگ img تمام

boof1364
جمعه 03 مرداد 1393, 17:22 عصر
خوب عزیزم .. با یه تگ img بزار و بعد آدرس اونجای که ذخیره شده رو بهش بده دیگه...

یه حلقه for میزاری بعد آدرس + نام فایل آپلود شده رو بزار تو تگ img تمام

دوست عزیز عصبانی نشی ها.این کد من هست

while ($row1 = mysqli_fetch_assoc($query1)) {
echo "<img src='pics/$row1[id].jpg' height='100' width='100'>";

این کد فقط برای عکس های با فرمت jpg هست.چه جوری بگم همه عکس ها با هر فرمتی که ذخیره شدن رو نشون بده؟؟؟

hamedarian2009
جمعه 03 مرداد 1393, 17:32 عصر
بزار واست یه مثال بزنم به این کد آپلود توجه کن :


<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>A simple example of uploading a file using PHP script</title>
</head>
<body>
<b>Simple example of uploading a file</b><br />

Choose a file to be uploaded<br />

<form action="upload_file.php" method="post" enctype="multipart/form-data">

<input type="file" name="file" size="50" />

<br />

<input type="submit" value="Upload" />

</form>
</body>
</html>




<?php
$targetfolder = "upload/";

$targetfolder = $targetfolder . basename( $_FILES['file']['name']) ;

$ok=1;

$file_type=$_FILES['file']['type'];

if ($file_type=="image/png" || $file_type=="image/gif" || $file_type=="image/jpeg") {

if(move_uploaded_file($_FILES['file']['tmp_name'], $targetfolder))

{

echo "The file ". basename( $_FILES['file']['name']). " is uploaded";

}

else {

echo "Problem uploading file";

}

}

else {

echo "You may only upload PNGs, JPEGs or GIF Images.<br>";

}
?>


ببین این مثال همون کاری که شما میخواهین رو انجام میده فقط کافیه بعد از آپلود زیر همین دستورات آپلود به دیتابیس متصل بشین و url عکس (تو این مثال targetfolder$) رو در دیتابیس ذخیره کنید واسه نمایش هم url عکس ها داخل src تگ img قرار بدین


while ($row1 = mysqli_fetch_assoc($query1)) {
echo "<img src='".$row1['url']'." height='100' width='100'>";

vahidqara
جمعه 03 مرداد 1393, 17:43 عصر
دوست عزیز عصبانی نشی ها.این کد من هست

while ($row1 = mysqli_fetch_assoc($query1)) {
echo "<img src='pics/$row1[id].jpg' height='100' width='100'>";

این کد فقط برای عکس های با فرمت jpg هست.چه جوری بگم همه عکس ها با هر فرمتی که ذخیره شدن رو نشون بده؟؟؟

خواهش دوست عزیز چرا عصبی بشم ... این مثال بالا از یه دوست گویای همه چی هست :لبخندساده:

boof1364
جمعه 03 مرداد 1393, 17:48 عصر
داداش بذار منم یه جور دیگه بگم.
من اصلا عکس هام تو دیتابیس ذخیره نمیشه.کل ماجرا اینه که من یه فلدر دارم بنام pics که داخلش کلی عکسه با فرمت های مختلف.حالا میخام نشونشون بدم.اسمشون رو هم از row1[id] می خونه ولی تایپشو نمی دونم چیه .شما اصلا کاری به آپلود عکس نداشته باش.من مشکلم تو تگ img و قسمت src هست که src=pics/row1[id].gif or jpg or tif. فقط همین.این قسمت تایپشو چجوری بهش بفهمونم؟:گریه:


بزار واست یه مثال بزنم به این کد آپلود توجه کن :


<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>A simple example of uploading a file using PHP script</title>
</head>
<body>
<b>Simple example of uploading a file</b><br />

Choose a file to be uploaded<br />

<form action="upload_file.php" method="post" enctype="multipart/form-data">

<input type="file" name="file" size="50" />

<br />

<input type="submit" value="Upload" />

</form>
</body>
</html>




<?php
$targetfolder = "upload/";

$targetfolder = $targetfolder . basename( $_FILES['file']['name']) ;

$ok=1;

$file_type=$_FILES['file']['type'];

if ($file_type=="image/png" || $file_type=="image/gif" || $file_type=="image/jpeg") {

if(move_uploaded_file($_FILES['file']['tmp_name'], $targetfolder))

{

echo "The file ". basename( $_FILES['file']['name']). " is uploaded";

}

else {

echo "Problem uploading file";

}

}

else {

echo "You may only upload PNGs, JPEGs or GIF Images.<br>";

}
?>


ببین این مثال همون کاری که شما میخواهین رو انجام میده فقط کافیه بعد از آپلود زیر همین دستورات آپلود به دیتابیس متصل بشین و url عکس (تو این مثال targetfolder$) رو در دیتابیس ذخیره کنید واسه نمایش هم url عکس ها داخل src تگ img قرار بدین


while ($row1 = mysqli_fetch_assoc($query1)) {
echo "<img src='".$row1['url']'." height='100' width='100'>";

hamedarian2009
جمعه 03 مرداد 1393, 22:24 عصر
دوست من این دو خط رو خودت گزاشتی

while ($row1 = mysqli_fetch_assoc($query1)) {
echo "<img src='pics/$row1[id].jpg' height='100' width='100'>";
یعنی داری آدرس عکسو از دیتابیس میخونی من هم نگفتم عکس رو در دیتابیس ذخیره کن بلکه url عکس منظورم بود
اگه کلا به دیتابیس کاری نداری میتونی از دستورات زیر برای نمایش تمام عکس ها در پوشه ای مثلا به نام uplaod استفاده کنی

$dirname = "upload/";
$images = glob($dirname."*.*");

foreach($images as $image) {
echo '<img src="'.$image.'" width="200" height="200" /><br />';
}