آموزش PHP
دسته بندی ( ۱۹۸ آموزش )
نمایش دسته بندی ها (۱۹۸ آموزش)

آپلود (upload) یک فایل، در PHP

معمولا سایت های کاربردی مختلف، قسمتی را برای آپلود (upload) فایل توسط کاربر قرار می دهند تا کاربر بتواند یک عکس، فایل فشرده شده (zip) یا هر نوع فایلی که مد نظر بوده است را بر روی سرور سایت، آپلود نماید. باید دقت داشت که هنگامی که به کاربر اجازه می دهیم که فایلی را بر روی سرور سایت ما آپلود کند، عملا راهی برای نفوذ به سایت خود، در اختیار وی قرار داده ایم، بنابراین برای اینکه از سوء استفاده های احتمالی جلوگیری کنیم، باید یک سری محدودیت را برای آپلود فایل اعمال نماییم. ابتدا یک کد ساده را برای آپلود فایل معرفی می کنیم، اما این کد به درد استفاده واقعی نمی خورد و تنها برای این است که با چگونگی کدنویسی برای آپلود فایل آشنا بشوید، پس از آن، یک کد حرفه ای تر را معرفی می کنیم که با اعمال یک سری محدودیت، امنیت را بیشتر می کند.

برای قسمت آپلود، ابتدا یک فرم HTML می سازیم و سپس اطلاعات حاصل از فرم را به یک فایل PHP می فرستیم تا بر روی آن اطلاعات، پردازش کند (این شیوه کلی ساخت فرم ها است). بنابراین یک فایل با نامی دلخواه می سازیم و کدهای زیر را درون آن می نویسیم (چون یک فرم HTML است، پس می تواند پسوند فایل، html یا php باشد) :

همان طور که از کد بالا مشخص است، این فرم، اطلاعات را با روش POST ، به فایل upload_file.php می فرستد تا این فایل، بر روی اطلاعات دریافتی، پردازش کند. مشخصه enctype برای فرم، مشخص می کند که نوع اطلاعاتی که کاربر ارسال می کند، چه می باشد. با انتخاب multipart/form-data برای این مشخصه، اعلام کرده ایم که اطلاعات ارسالی، به صورت اطلاعات دودویی (binary data) است.

درون تگ input ، مشخصه type را برابر file قرار داده ایم تا اعلام کنیم که نوع ورودی، به صورت فایل می باشد. بنابراین درون فرم، یک دکمه browse به کاربر نمایش داده می شود تا با آن بتواند فایل مورد نظر را از کامپیوتر خود انتخاب نماید.

ظاهر فرم، به صورت زیر خواهد بود :

آپلود (upload) یک فایل، در PHP

یک فایل با نام upload_file.php می سازیم و کدهای زیر را درون آن می نویسیم :

متغیر $_FILES ، یک متغیر فوق سراسری (superglobal) می باشد.

ایجاد یک سری محدودیت برای آپلود فایل :

همان طور که گفتیم، امکان آپلود فایل در هاست سایت، روزنه ای امنیتی خواهد بود، مثلا یک هکر می تواند فایلی حاوی یک سری کد مخرب (به صورت یک صفحه اینترنتی) را در سایت شما آپلود کرده و سپس با وارد کردن آدرس مسیر آپلود آن فایل در مرورگر خود، آن را اجرا نماید. بنابراین آن کدهای مخرب، به صورت یک صفحه از سایت شما اجرا شده و ممکن است که توسط آن، فرد هکر اطلاعات بخشی از سایت را تخریب کرده و یا به سرقت ببرد. بنابراین باید برای نوع فایل و یک سری ویژگی های دیگر فایل، محدودیت هایی را اعمال کنیم.

این بار، کدهای فایل upload_file.php را به صورت زیر می نویسیم :

در کد بالا تعیین کرده ایم که نوع فایلی که کاربر آپلود می کند، تنها می تواند gif یا jpeg یا png باشد و حداکثر حجم آن نیز باید 20 کیلوبایت (kB) باشد (فایل های بزرگتر، آپلود نخواهند شد). اگر کاربر، فایلی را انتخاب کند که در شرایط فوق صدق نکند، آنگاه یک پیام با عنوان Invalid file به وی نمایش داده می شود.

ذخیره فایل آپلود شده :

با کد قبل، تنها یک کپی از فایل، به صورت موقت نگهداری می شود. عمر این نسخه کپی از فایل، تنها تا پایان اجرای کدها می باشد، بنابراین باید کدهایمان را به گونه ای تغییر بدهیم که بتوانیم فایل را در یک فولدر از سایت، ذخیره نماییم. کدهای فایل upload_file.php را به صورت زیر تکمیل می کنیم :

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

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

نکته

چنانچه بخواهیم که بجای نام اصلی فایل، یک نام دیگر برای آن انتخاب کنیم، باید به جای این بخش از کدها :

کد زیر را بنویسیم :

البته من تنها به عنوان مثال، نام myImage.png را انتخاب کردم تا بدانید که کدام قسمت را باید تغییر بدهید، در صورتیکه یک کد کامل، باید شامل تشخیص نوع فایل نیز باشد تا نام جدید فایل، دارای پسوند مناسب باشد.

نکته

اگر بخواهیم که فایل در فولدری غیر از فولدر upload ذخیره شود، باید کلمه upload را در کدها، به نام فولدر مورد نظرمان تغییر بدهیم.

توضیحات بیشتر در مورد کدها :

در ادامه، نکاتی را در مورد کدها ذکر خواهیم کرد.

نکته

با استفاده از کدهای زیر، پسوند فایل را تشخیص داده و در یک متغیر ذخیره می کنیم :

تابع explode یک علامت و یک رشته (string) را دریافت می کند و سپس، رشته مورد نظر را بر اساس علامتی که تعیین کرده ایم، به چندین رشته تجزیه کرده و به صورت یک آرایه رشته ای بر می گرداند. دقت کنید که متغیر فوق سراسری $_FILES ، حاوی اطلاعات فایل در حال آپلود می باشد، بنابراین، عبارت زیر، نام فایل در حال آپلود را به ما می دهد :

بنابراین به تابع explode ، نام فایل در حال آپلود را داده ایم و همچنین علامت نقطه (.) را به عنوان علامت مورد نظرمان برای تجزیه رشته (string) انتخاب نموده ایم، بنابراین مثلا فرض کنید که کاربر فایلی با نام myFile.number2.png را برای آپلود انتخاب کند، آنگاه تابع explode ، یک آرایه رشته ای، حاوی سه رشته زیر را بر می گرداند :

این آرایه رشته ای، در $temp ذخیره می شود. سپس با تابع end ، آخرین عنصر تابع را در متغیر $extension ذخیره می کنیم، زیرا پسوند فایل، همان آخرین رشته قرار گرفته در آرایه رشته ای می باشد. بنابراین پسوند را در متغیر $extension خواهیم داشت و با آن، می توانیم نوع فایل انتخاب شده توسط کاربر را تشخیص بدهیم.

نکته

یکی از شرط هایی که برای چک کردن صحیح بودن فایل انتخاب شده برای آپلود، در کدها نوشته ایم، به صورت زیر می باشد :

تابع in_array برای چک کردن وجود یک مقدار در یک آرایه می باشد. اگر مقدار ذخیره شده در متغیر $extension که همان پسوند فایل انتخاب شده می باشد، در آرایه $allowedExts موجود باشد، آنگاه تابع in_array ، مقدار 1 را برمی گرداند و در غیر این صورت، مقدار 0 را برمی گرداند. آرایه $allowedExts همان آرایه حاوی پسوندهای مجاز برای آپلود فایل می باشد که قبلا آن را به این صورت تعریف کردیم :

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

نکته

گاهی اوقات برخی فایل ها، دارای پسوند با حروف بزرگ می باشند، به عنوان مثال، به جای image.png ، فایل دارای نام image.PNG می باشد. بنابراین پسوند آنها به عنوان پسوند مجاز شناسایی نمی شود. برای در نظر گرفتن این مورد نیز می توانید خط زیر از کدها را :

به کد زیر تغییر بدهید :

منبع کدهای این آموزش :

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

نویسنده علیرضا گلمکانی
شماره کلید 458
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 41 41 0
وحید
۱۳۹۵/۰۴/۰۵
۱۴:۲۴

تشکر ویژه
واقعا بدرد بخور بود
کامل و بی نقص[عکس: smiley_1.png]

shahab.es
۱۳۹۵/۰۴/۰۷
۰۶:۱۹

خسته نباشید هموطن
لذت بردم از بیانتون
خدا قوت :gol:

مصطفی
۱۳۹۵/۰۵/۰۲
۰۳:۴۰

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

siavash
۱۳۹۵/۰۵/۰۳
۱۲:۴۲

با سلام چیزی که شما قرار داده اید نام فایل و محل و اندازه فایل رو می نویسه اما من می خواهم تصویری رو آپلود کنه و نمایش بده

admin
۱۳۹۵/۰۵/۰۳
۱۷:۰۰

سلام.
آپلود عکس که با همان کدها انجام می شود (باید فرمت های مجاز برای عکس مثل jpeg و jpg و png و gif و ... را در لیست فرمت های مجاز برای فایل قرار دهید)، بعد باید در صورت موفقیت آمیز بودن آپلود عکس، آن را توسط یک تگ img نمایش بدهیم.
در مشخصه src از تگ img ، آدرس نسبی عکس نسبت به صفحه PHP را می نویسیم.
مثلا در بخشی از کدهای مبحث، آدرس فایل آپلود شده را با کد زیر تعیین کرده ایم :

کد پی‌اچ‌پی:
"upload/" $_FILES["file"]["name"

بنابراین آدرس نسبی فایل آپلود شده را به صورت بالا داریم (یا ممکن است آن را به دلخواه تغییر داده باشید). بنابراین در صورت موفقیت آمیز بودن آپلود، می توانیم با کد زیر، عکس آپلود شده را نمایش بدهیم :

کد پی‌اچ‌پی:
<img src="<?php echo "upload/" . $_FILES["file"]["name"]; ?>" /> 


Flower

شفق
۱۳۹۵/۰۶/۱۱
۱۲:۱۵

بسیار عالی و اموزنده

همیشه سلامت
باشید
[عکس: smiley_20.png]

رضا
۱۳۹۵/۰۸/۱۱
۱۶:۳۳

واقعا ممنونم ، خیلی عالی بود

اگر ممکنه اینهم بفرمایید ، میخواستم یک فیلد هم برای دریافت لینک به فرم اضافه کنم و به همراه بنر به ایمیلم ارسال بشه ، لطفا راهنمایی کنید ، مرسی

رضا
۱۳۹۵/۰۸/۱۲
۱۵:۰۷

coffee

admin
۱۳۹۵/۰۸/۱۴
۲۳:۴۱

سلام.
کلیدهای دو دسته کلید (دسته بندی) زیر را در مورد ساخت فرم و پردازش اطلاعات دریافتی از آن، بخوانید (تنها باید یک فیلد (field) جدید را بر اساس جزئیات ذکر شده، به همان فرم ساخته شده اضافه نمایید) :

دسته کلید شماره 227

دسته کلید شماره 146

مخصوصا دو کلید زیر را بخوانید :

کلید شماره 511

کلید شماره 399

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

Flower

رامین
۱۴۰۲/۱۱/۲۵
۲۳:۴۷

میخواستم کد آپلود فایل تصویری رو به کد متنی تغییر دهیم چه کدی بن ویسیم که فایل word رو آپلود کند.؟

sami
۱۳۹۵/۰۸/۲۸
۱۰:۲۸

سلام چراواسه من  این کدو تو خروجی نشون میده؟

کد پی‌اچ‌پی:
t0) { echo "error:".$_FILES["file"]["error"]."

"
; } else{ echo "بروزرسانی شد:".$_FILES["file"]["name"]; move_uploaded_file($_FILES["file"]["tmp_name"], "uploadzivar/" $_FILES["file"]["name"]); echo "Stored in: " "uploadzivar/" $_FILES["file"]["name"]; } ?>

admin
۱۳۹۵/۱۲/۲۵
۱۳:۱۶

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

Flower

وفا
۱۳۹۶/۰۵/۱۴
۱۲:۳۴

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

shadow
۱۳۹۵/۱۲/۲۳
۱۹:۰۲

ببخشید من عین کد ها رو کپی کردم و در ویرایشگرم paste کردم......دقیقا مثل شما عمل کردم.ولی در صفحه ی سرورم این خطا رو میده:
Object not found!
The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.
If you think this is a server error, please contact the [email=postmaster@localhost]webmaster[/email].

Error 404

localhost
Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30

admin
۱۳۹۵/۱۲/۲۴
۱۱:۰۱

سلام.
احتمالا نام فایل PHP را برابر upload_file.php انتخاب نکرده اید. یا نام فایل PHP را به upload_file.php تغییر دهید و یا عبارت upload_file.php را در کدها بیابید و نام مورد نظر خود برای فایل را جایگزین آنها کنید.

نکته :
کد زیر را در کدهای HTML فرم ببینید :

کد پی‌اچ‌پی:
<form action="upload_file.php" method="post" enctype="multipart/form-data"

اگر بخواهیم که نام فایل PHP را در کدهای form ذکر نکنیم، می توانیم به جای نام فایل، علامت # را بنویسیم که به این معنی است که فرم (form) کاربر را به همین صفحه فعلی منتقل خواهد کرد :

کد پی‌اچ‌پی:
<form action="#" method="post" enctype="multipart/form-data"

در این حالت، دیگر نام فایل PHP در کدها ذکر نشده است و نگران تغییر نام آن نیز نخواهیم بود.
البته در این مواقع باید بقیه کدهای پردازشی و ... را هم چک کنید که آیا نام صفحه PHP در آنها به کار رفته یا خیر.

Flower

shadow
۱۳۹۵/۱۲/۲۵
۱۲:۰۱

واقعا ازتون ممنون که خیلی خوب جواب سوال ما رو میدین.
چک کردم و الان فقط یک چیز میاد و اونم :Invalid file!
خیلی ممنون از سایت خوبتون

admin
۱۳۹۵/۱۲/۲۵
۱۳:۱۲

سلام. ممنون.
تعیین کرده ایم که اگر پسوند فایل در لیست پسوندهای مجاز نبود یا اندازه فایل بیش از حد مجاز بود، آنگاه پیام Invalid file نمایش داده شود :

کد پی‌اچ‌پی:
}else{
 
   echo "Invalid file";


بنابراین باید فایلی را برای تست کدها انتخاب کنید که در این شرط ها صدق کند. همچنین می توانید حداکثر اندازه تعیین شده برای فایل را بزرگتر انتخاب نمایید.
در خط زیر از کدها، اندازه حدود 20 کیلوبایت تعیین شده (این عدد 20000 بر حسب بایت است و باید آن را به 1024 تقسیم کنید تا کیلو بایت به دست بیاید) :

کد پی‌اچ‌پی:
&& ($_FILES["file"]["size"] < 20000

بنابراین می توانید اندازه بزرگتری برای حجم فایل (اندازه فایل) انتخاب کنید.

Flower

محسن
۱۳۹۶/۰۳/۰۷
۱۵:۲۷

این کارو توی dreamweaver چطوری انجام بدیم؟

seyed
۱۳۹۶/۰۴/۰۹
۱۰:۳۹

واقعا دمتون گرم

zohre
۱۳۹۶/۰۴/۲۲
۱۳:۵۱

سلام ممنون از سایت خوبتون یه سوال داشتم من میخوام عکسی آپلود کنم که هم طبق کدهای شما هم اندازه اش کمتر از 20 کیلو بایت هستش هم پسوندش جز پسوند ها هست ولی بعضی از عکس ها رو آپلود میکنه بعضی ها رو هم Invalid fileمیزنه با این که اندازش هم درسته

admin
۱۳۹۶/۰۴/۲۵
۱۱:۱۲

سلام.
احتمالا یکی از دو مورد زیر باعث عدم مجاز بودن فایل می شود :
1- اندازه ای که مشخص کرده ایم، دقیقا برابر 20 کیلوبایت نیست (بنده به صورت تقریبی گفتم 20 کیلوبایت)، بلکه باید عدد 20000 را بر 1024 تقسیم کنیم تا دقیقا مقدار مجاز مورد نظر بر حسب کیلوبایت باشد (1 کیلوبایت برابر 1024 بایت می باشد). بنابراین ممکن است اندازه فایل، خیلی نزدیک به 20 کیلوبایت بوده (اما بیشتر از حد مجاز) و باعث شده که از حد مجاز برای اندازه فایل، بیشتر باشد.
2- گاهی اوقات برخی فایل ها، دارای پسوند با حروف بزرگ می باشند، به عنوان مثال، به جای image.png ، فایل دارای نام image.PNG می باشد. بنابراین پسوند آنها به عنوان پسوند مجاز شناسایی نمی شود. برای در نظر گرفتن این مورد نیز می توانید خط زیر از کدها را :

کد پی‌اچ‌پی:
$allowedExts = array("gif""jpeg""jpg""png"); 


به کد زیر تغییر بدهید :

کد پی‌اچ‌پی:
$allowedExts = array("gif""GIF""jpeg""JPEG""jpg""JPG""png""PNG"); 


Flower

zohre
۱۳۹۶/۰۶/۰۸
۱۳:۱۹

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

admin
۱۳۹۶/۰۶/۱۲
۰۹:۴۱

سلام.
هر نوع فایلی که قصد دارید اجازه آپلود آن را به کابر بدهید، باید پسوند آن نوع فایل را در آرایه مربوط به پسوندهای مجاز برای آپلود فایل، ذکر نمایید.
به عنوان مثال، فرض کنید که آرایه پسوندهای مجاز در کدهای این مبحث آموزشی، به صورت زیر باشد :

کد پی‌اچ‌پی:
$allowedExts = array("gif""GIF""jpeg""JPEG""jpg""JPG""png""PNG"); 


اکنون می خواهیم که فایل های pdf را هم کاربر بتواند آپلود کند، بنابراین دو مورد زیر را هم به آرایه اضافه می کنیم (یکی با حروف بزرگ است) :

کد پی‌اچ‌پی:
$allowedExts = array("gif""GIF""jpeg""JPEG""jpg""JPG""png""PNG""pdf""PDF"); 

البته در کدهای مورد نظر، شرطی نیز به صورت زیر بررسی می شود (برای نوع فایل) :

کد پی‌اچ‌پی:
(($_FILES["file"]["type"] == "image/gif")
|| (
$_FILES["file"]["type"] == "image/jpeg")
|| (
$_FILES["file"]["type"] == "image/jpg")
|| (
$_FILES["file"]["type"] == "image/pjpeg")
|| (
$_FILES["file"]["type"] == "image/x-png")
|| (
$_FILES["file"]["type"] == "image/png"))
&& 

شما این بخش از شرط ها را حذف کنید (تا فقط نوع فایل بر اساس پسوند فایل چک شود).
یا اگر این بخش از شرط ها هم برایتان مهم است، باید عبارتی را هم برای فایل های pdf به آن اضافه کنید (البته اهمیتی ندارد).

Flower

میلاد
۱۳۹۶/۰۸/۲۱
۱۹:۱۸

سلام خسته نباشید ممنون از سایت خوبتون 
ببخشید من یه مشکلی با اپلود فایل داشتم وقتی تصویر پروفایل اپلود میشه ! بروز رسانی نمیشه و همون تصویر قبلی رو نشون میده بنظرتون اشکال کار کجاست ؟ 

admin
۱۳۹۶/۰۸/۲۱
۲۰:۱۰

سلام.
احتمالا عکس جدید را که آپلود می کنید، دارای همان نام و آدرس عکس قدیمی می باشد و بنابراین چون مرورگر اینترنت (Browser) کاربر، قبلا عکس را دانلود کرده و آن را کش (cache) کرده است، با توجه به تکراری بودن آدرس عکس، دوباره آن را دانلود نمی کند و همان عکس قدیمی که کش (cache) کرده است را نمایش می دهد.
بنابراین یک راه حل می تواند این باشد که نام های متفاوتی برای عکس هایی که آپلود می شوند، انتخاب کنید که امکان تکرار شدن آنها نباشد (مثلا عدد مربوط به زمان آپلود را در نام عکس به کار می برید) و بنابراین باید نام مربوط به عکس را هم در پایگاه داده ذخیره کنید تا هر زمان که قصد نمایش عکس مربوط به یک کاربر را داشتید، ابتدا نام عکس مربوط به وی (و در صورت لزوم، آدرس آن) را از پایگاه داده، فراخوانی کرده و سپس آن را به کاربر نمایش دهید.

Flower

میلاد
۱۳۹۶/۰۸/۲۱
۲۰:۱۷

خیلی ممنون از پاسخگویی

ghka
۱۳۹۶/۰۹/۰۹
۱۵:۳۸

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

و مهمتر از همه
حالا میخایم تمامی عکس ها با یک شماره و یک نام رو ببینیم---------> مثلا تمامی عکس هایی ک مربوط به محسن است رو ببینیم.(قابل ذکره که اسم محسن بصورت زیر ثبت شده مثل ----->   {محسن_17} یا {محسن_شهریار}  و ..... )

یا یک گزینه search  داشته باشه که وقتی اسم محسن رو توی اون نوشتیم تمامی عکس های محسن لیست بشه....
خیلی ممنونم اگه کمکم کنید...


خسته نباشید.

ابوالفضل
۱۳۹۶/۱۰/۲۹
۱۳:۱۱

سلام خسته نباشید

لطفا بگید که چطور فایل زیپ آپلود بشه و همزمان فایل آنزیپ بشه

مثلا همین فایلی که نوشتی بعد از آپلود فایل زیپ را آنزیپ بکنه

admin
۱۳۹۶/۱۰/۲۹
۱۹:۳۷

سلام.
باید پسوند zip (و ZIP) را در پسوندهای مجاز برای آپلود قرار دهید (در کدهای PHP مربوط به آپلود فایل) و پس از آپلود فایل، کدهای PHP مربوط به از حالت فشرده خارج کردن فایل zip را بر اساس کلید زیر اجرا نمایید :

کلید شماره 463

---------------------------------------

چون در کدهای آپلود فایل، بخشی برای بررسی MIME Type های مربوط به فایل های مجاز برای آپلود وجود دارد، می توانید MIME Type مربوط به فایل zip را در کلید زیر بیابید (البته در صورت تمایل می توانید بخش مربوط به بررسی MIME Type را از کدها حذف کنید و تنها پسوندهای مجاز را در آرایه ذکر شده در کدها بنویسید تا صرفا پسوند فایل ها بررسی گردد) :

کلید شماره 3450

Flower

admin
۱۳۹۶/۱۰/۲۹
۱۹:۴۳

سلام.
در ضمن، فایل های zip آپلود شده توسط کاربران را unzip نکنید، چون ممکن است حاوی فایل های شامل کد و با پسوند قابل اجرا (مثلا پسوند php) در مرورگر اینترنت (با دانستن آدرس URL فایل) باشد.
اگر مجبور به unzip کردن شدید، یا موقتی و برای پردازش باشد (با لحاظ کردن نکات امنیتی) و یا اینکه کلیه موارد امنیتی برای باقی ماندن فایل ها در سرور را در نظر بگیرید.

Flower

۱۳۹۶/۱۱/۱۵
۰۵:۵۹

  • ممنون...
    کد:
    ​<div style="width:200px;height:300px;background:black;>



  • Iran


جمال
۱۳۹۷/۰۶/۰۹
۰۹:۰۶

سلام
از نظر علمی مطالب مفیدی را قرار داده بودید
و از نظر مفهومی و شرح عالی بود
پاینده باشید و راهتان پر رهرو

مهدی
۱۳۹۷/۰۷/۰۵
۱۹:۰۴

سلام مطلب خیلی مفیدی بود
تو قسمتی که اگر عکسی با اسمی وجود داشته باشه میشه اسمی جدید واسش گزاشت ولی اگر یک بار ببینه اسم تکراریه میتونه اسمشو عوض کنه دفه دوم اسم تکراری باشه اسمی که میخواد جدید بهش بده رو قبلا واسه یه عکس دیگه هم گزاشته چطوری میشه هر دفه که لازم میشه اسم جدید بده اسامی مختلفی بده ممنون

فاطمه
۱۳۹۷/۰۹/۲۷
۱۷:۴۷

سلام.ممنون از سایت خوبتون.
من یه سوال داشتم. من میخوام یه فایل rar یا zip برای ارسال رزومه کاربران تو سایتم آپلود کنم . داخل cms سایتم یه table دارم که اطلاعاتم را از mysql میخونه .میخوام هر کاربری که فایلی ارسال میکنه بره داخل این table. درواقع نمیدونم چطوری فایل آپولد شدم insert بشه در mysql?
لطفا راهنماییم کنید. با تشکر.

مهدی
۱۳۹۹/۱۲/۰۸
۱۵:۵۹

سلام خیلی ممنون از آموزشتون .یک سوال داشتم . من نمیتونم فیلم یا اهنگ اپلود کنم دلیلش چیه؟؟
پسوند ها هم مجاز قرار دادم ممنون میشم راهنماییم کنید

fateme
۱۴۰۰/۰۶/۱۵
۱۲:۱۶

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

عرفان
۱۴۰۰/۰۸/۲۴
۱۶:۴۴

سلام و سپاس

ممنون از سایت و آموزشهای خوبتون

من میخوام بجای آپلود از روی کامپیوتر یک فایل رو از روی آدرس یک لینک در سایت دیگری در هاست خودم بارگزاری کنم

برای انجام این چکار باید بکنم؟

admin
۱۴۰۰/۰۸/۲۴
۲۲:۳۹

سلام.
کتابخانه CURL در PHP ، امکان دریافت فایل از دامنه های اینترنتی (سایت های) دیگر و قرار دادن آن در سایت خودمان را دارد (یکی از امکانات آن می باشد) (آدرس فایل را دریافت می کند و بعد آن را دانلود کرده و در محلی از سرور سایت ما قرار می دهد).
البته کتابخانه های دیگری نیز وجود دارد که می توانند این کار را انجام دهند و توصیه می شود ابتدا تحقیق کنید که بهترین کتابخانه ممکن کدام است.
همچنین دقت کنید که مثلا ما وقتی در کامپیوتر خود، با یک نرم افزار Download Manager ، فایلی را دانلود می کنیم، گاهی فایل از همان آدرس URL که داده ایم به طور مستقیم دانلود می شود، اما گاهی چند بار Redirect در آن سایت شامل فایل رخ می دهد و آدرس URL نهایی که از آن، فایل دانلود می شود، متفاوت است و ما این موضوع را متوجه نمی شویم. با توجه به این نکته، کتابخانه های PHP که می توانند فایل دانلود کنند و در سرور قرار دهند، معمولا تنظیماتی هم دارند که مشخص می کند در صورت Redirect شدن، آیا آن Redirect ها را دنبال کنند یا خیر. این نکته را تذکر دادم تا اگر به مشکل برخوردید، این مورد را نیز بررسی کنید که همه تنظیمات صحیح باشد. کتابخانه هایی مثل CURL ، تنظیمات زیادی دارند و اگر به مشکل برخوردید، به نمونه کد موجود در یک سایت آموزشی اکتفا نکنید و نمونه کدهای نوشته شده برای آن در سایت های آموزشی مختلف را بررسی نمایید.

Flower

amir
۱۴۰۰/۱۱/۲۰
۱۹:۳۲

 سلام کد htmlمیخوام که زمانی فرد عکس میفرسته عکس فرستاده شده خودش ببینه میشه همچنین چیزی با تشکر 
 مثل این  سایت 
[عکس: screenshot_2022-02-09_190256_ct7k.png]
  مثل این سایت 
https://irsherkat.ssaa.ir/Design/RqstAdm...aspx?Id=18

sepehr
۱۴۰۱/۰۹/۲۲
۱۳:۲۱

سلام کامل و بی نق و بسیار کاربردی  ممنون
لطفا آموزش ساخت فرم ثبت نام رو هم بدید Iran  Heart Heart Heart

mahdie
۱۴۰۱/۱۱/۰۲
۱۴:۲۰

من هرچی میخونم هیچی سردرنمیارم از phpراهکاری میدین Confused

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو


راهنمای توابع PHP

راهنمای توابع PHP بر اساس حرف اول تابع :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z