PDA

View Full Version : توضيح گد



soonami
یک شنبه 23 مهر 1391, 00:47 صبح
سلام دوستان كد زير براي آپلود كردن فايل هاي تصويري با محدوديت هست كه از نت گرفتم ولي

يه جاشو متوجه نمي شوم آخه تازه كارم





<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>

soonami
یک شنبه 23 مهر 1391, 00:51 صبح
خط 3 و 9 و 20 يه توضيحي بديد

Unique
یک شنبه 23 مهر 1391, 00:57 صبح
$extension = end(explode(".", $_FILES["file"]["name"]));
این خط پسوند فایل ارسالی را بر میگردونه ! از طریق کاراکتر "." فایل را تبدیل میکنه به آرایه و آخرین index که همون پسوند هست را بر میگردونه !


in_array($extension, $allowedExts))
میاد چک میکنه که پسوند فایل که توی خط 3 بدست آورد آیا در آرایه ای که از پسوند های مجاز ساخته هست یا نه !


echo "Stored in: " . $_FILES["file"]["tmp_name"];
مسیر پیش فرضی که php در زمان ارسال فایل اون را ذخیره کرده بر میگردونه !

soonami
یک شنبه 23 مهر 1391, 00:58 صبح
اينم كلا توضيح بديد

ممنون



if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>

soonami
یک شنبه 23 مهر 1391, 01:00 صبح
ممنون اون تيكه كد اول فهميدم خيلي خوب توضيح داديد

moshaver71
یک شنبه 23 مهر 1391, 08:02 صبح
خط 1 تا 4: بررسی میکنه که فایل تو مسیر داده شده وجود داره یا نه؟ اگه وجود داشته باشه پیغام میده که قبلا فایلی با این اسم آپلود شده.
خط 5 تا 11: اگه شرط بالا صادق نباشه فایل رو از مسیر ذخیره موقت به مسیر داده شده انتقال میده و آدرس ذخیره فایل رو برمیگردونه
خط 13 تا 17 : این قسمت رو باید با استفاده از تکه کد اولی که گذاشتید بررسی کرد و کارش اینه که اگه پسوند فایل وارد شده درست نباشه اجرا میشه و پیام invalid file رو برمیگردونه

soonami
یک شنبه 23 مهر 1391, 10:15 صبح
اينم تقريبا فهميدم فقط يه مشكلي هست چرا الان اين برنامه مشكل داره ؟؟؟؟



<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>

soonami
یک شنبه 23 مهر 1391, 10:21 صبح
الان يه سوال مثلا كد

if (file_exists("upload/" . $_FILES["file"]["name"]))

وجود
"upload/"

كه ضرووري نيست چون باعث الصاق اون با تيكه بدي شده درسته ؟؟؟

علت استفادش براي چي هست

ببخشيدا من تازه كارم يكم بايد تمرين و كار كنم تا راه بي افتم

ممنون

soonami
یک شنبه 23 مهر 1391, 11:39 صبح
مشكل اينه كه همش invalid file ‌ميده

moshaver71
یک شنبه 23 مهر 1391, 12:23 عصر
وجود / برای آدرس دهی هست دقیقا مثل آدرسی که شما خودتون به فایل هاتون میدین به این شکل:
http://localhost/folder/filename
اگه خطای invalid file میده یعنی اینکه فرمت فایلتون درست نیست و یا اینکه حجم فایلتون بیشتر از مقدار تعیین شده هست

soonami
یک شنبه 23 مهر 1391, 12:55 عصر
دوست عزيز من حتي محدوديت حجم بر ميدارم اين inva..