View Full Version : توضيح گد
soonami
یک شنبه 23 مهر 1391, 01: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, 01:51 صبح
خط 3 و 9 و 20 يه توضيحي بديد
Unique
یک شنبه 23 مهر 1391, 01:57 صبح
$extension = end(explode(".", $_FILES["file"]["name"]));
این خط پسوند فایل ارسالی را بر میگردونه ! از طریق کاراکتر "." فایل را تبدیل میکنه به آرایه و آخرین index که همون پسوند هست را بر میگردونه !
in_array($extension, $allowedExts))
میاد چک میکنه که پسوند فایل که توی خط 3 بدست آورد آیا در آرایه ای که از پسوند های مجاز ساخته هست یا نه !
echo "Stored in: " . $_FILES["file"]["tmp_name"];
مسیر پیش فرضی که php در زمان ارسال فایل اون را ذخیره کرده بر میگردونه !
soonami
یک شنبه 23 مهر 1391, 01: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, 02:00 صبح
ممنون اون تيكه كد اول فهميدم خيلي خوب توضيح داديد
moshaver71
یک شنبه 23 مهر 1391, 09:02 صبح
خط 1 تا 4: بررسی میکنه که فایل تو مسیر داده شده وجود داره یا نه؟ اگه وجود داشته باشه پیغام میده که قبلا فایلی با این اسم آپلود شده.
خط 5 تا 11: اگه شرط بالا صادق نباشه فایل رو از مسیر ذخیره موقت به مسیر داده شده انتقال میده و آدرس ذخیره فایل رو برمیگردونه
خط 13 تا 17 : این قسمت رو باید با استفاده از تکه کد اولی که گذاشتید بررسی کرد و کارش اینه که اگه پسوند فایل وارد شده درست نباشه اجرا میشه و پیام invalid file رو برمیگردونه
soonami
یک شنبه 23 مهر 1391, 11: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, 11:21 صبح
الان يه سوال مثلا كد
if (file_exists("upload/" . $_FILES["file"]["name"]))
وجود
"upload/"
كه ضرووري نيست چون باعث الصاق اون با تيكه بدي شده درسته ؟؟؟
علت استفادش براي چي هست
ببخشيدا من تازه كارم يكم بايد تمرين و كار كنم تا راه بي افتم
ممنون
soonami
یک شنبه 23 مهر 1391, 12:39 عصر
مشكل اينه كه همش invalid file ميده
moshaver71
یک شنبه 23 مهر 1391, 13:23 عصر
وجود / برای آدرس دهی هست دقیقا مثل آدرسی که شما خودتون به فایل هاتون میدین به این شکل:
http://localhost/folder/filename
اگه خطای invalid file میده یعنی اینکه فرمت فایلتون درست نیست و یا اینکه حجم فایلتون بیشتر از مقدار تعیین شده هست
soonami
یک شنبه 23 مهر 1391, 13:55 عصر
دوست عزيز من حتي محدوديت حجم بر ميدارم اين inva..
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.