معلومه دیگه
آدرس جاییه که می خوای فایلت اونجا save بشه
البته باید نام فایلت هم توش باشه که اینجوری می تونی بدست بیاریش:
[PHP]basename($_FILES['form_field']['name'][/PHP]
Printable View
معلومه دیگه
آدرس جاییه که می خوای فایلت اونجا save بشه
البته باید نام فایلت هم توش باشه که اینجوری می تونی بدست بیاریش:
[PHP]basename($_FILES['form_field']['name'][/PHP]
امشب همزمان داشتیم پست میزدیم یه کم موضوع قاطی پاتی شد برای همین اینو با تأخیر نوشتم!
برای آپلود فایل ما به یک فرم HTML احتیاج داریم که توش یه فیلد داشته باشه از نوع file یعنی یه چیزی شبیه این:
[html]
<form action="php_script.php" enctype="multipart/form-data">
<input type="file" name="My_Field">
سایر اجزای فرم...
...
</form>
[/html]
حالا وقتی که تو فرم بالا یه فایل انتخاب بشه و فرم سابمیت بشه فای آپلود میشه توی سرور. تو سرور فایل توی پوشه temp با یه نام موقتی که همون tmp_name باشه نگهداری میشه که اگه اسکرپت php که برای آپلود فایل نوشته شده این فایل رو جابجا نکنه پس از پایان اسکرپت اون فایل موقتی حذف میشه.
توی اسکرپت مربوطه میتونید فایل آپلود شده و اطلاعات مربوط به اونو از طریق این متغیر کنترل کنید:
[php]
$_FILES['My_Field'];
[/php]
اطلاعات فایل شما به صورت یک آرایه توی متغیر بالا نگهداری میشه که حاوی اینها هست:
[php]
$_FILES['My_Field']['name'] // این نام فایل آپلود شده رو توی کامپیوتر کاربر نگه میداره
$_FILES['My_Field']['type'] // این mime type فایل آپلود شده رو بر اساس مشخصات ارسال شده از کاربر نگهداری میکنه
$_FILES['My_Field']['size'] // این سایز فایل آپلود شده رو بر حست بایت نگه میداره
$_FILES['My_Field']['tmp_name'] // این هم که در موردش توضیح دادم
$_FILES['My_Field']['error'] // این کد اروری رو که ممکنه ضمن آپلود فایل رخ بده نگهداری میکنه که اگه اروری نباشه مقدارش 0 هست
[/php]
خب حالا که فایل آپلود شده و ما نام موقت اونو میدونیم تنها کاری که باید انجام بدیم اینه که فایل رو از پوشه tmp به پوشه ای که میخوایم فایل ذخیره بشه منتقل کنیم که بهترین راه برای این کار استفاده از تابع move_uploaded_file هست
است تابع هم دو تا پارامتر میگیره پارامتر اول نام موقت فایل آپلود شده هست و پارامتر دوم مسیری هست که فایل باید به اونجا انتقال داده بشه. البته توی قسمت پارامتر دوم باید نام فایل رو هم مشخص کنی. مثلاً کد زیر فایل آپلود شده رو توی پوشه ای که اسکرپت اجرا میشه و با نامی که فایل توی کامپیوتر کاربر داره ذخیره میکنه:
[php]
move_uploaded_file($_FILES['My_Field']['tmp_name'], $_FILES['My_Field']['name']) ;
[/php]
سلام
من که نتونستم آخر جمو جورش کنم
اگر زحمتی نیست اجراییش رو برام بزار
تشکر//
من دیگه چیزی به ذهنم نمیرسهنقل قول:
اگه نتونستی درستش کنی آدرسی رو که میخوای فایل تو سرورت ذخیره بشه بزار به همراه نام فیلدی که میخوای فایل رو بگیره تا برات بنویسم
راستی یه چیزی رو یادم رفت بگم. متد فرمی که فایل آپلود میکنه باید post باشه یعنی اینجوری«
[html]
<form action="php_script.php" enctype="multipart/form-data" method="post">
[/html]
آدرسی که میخوام فایل در اون باشه : فولدر amir
نام فیلد : iran
اگه زحمتش رو بکشی میمنون میشم
تشکر//
این یک اسکرپت ساده آپلود فایل هست که فایل شما رو آپلود میکنه توی پوشه amir
در صورتی هم که فایلی با نام فایل فعلی وجود داشته باشه به جای اینکه فایل جدید رو جانشین فایل قبلی کنه اسم فایل جدید رو تغییر میده
این فایل upload.php:
[php]
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if($_FILES['iran']['error']) {
exit('Failed: Error '.$_FILES['iran']['error']);
}
$extension = pathinfo($_FILES['iran']['name'], PATHINFO_EXTENSION);
$filename = $target_name = basename($_FILES['iran']['name'], ".$extension");
$target_folder = 'amir';
$i = 1;
while(file_exists("$target_folder/$target_name.$extension")) {
$target_name = $filename."_$i";
$i++;
}
$path = "$target_folder/$target_name.$extension";
if(move_uploaded_file($_FILES['iran']['tmp_name'], $path)) {
echo "File ".$_FILES['iran']['name']." is uploaded to $path";
}
}
?>
[/php]
و اینم کدهای مربوط به فرم آپلود فایل هست:
[html]
<html>
<head>
<title>Upload file</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="iran">
<input type="submit">
</form>
</body>
</html>
[/html]
البته میشه امکانات دیگه ای هم به این فایل اضافه کرد که بستگی به خودتون داره چون این فقط یه مثاله
مثلاً میتونید سایز فایل رو چک کنید و محدودیت برای سایز در نظر بگیرید و همینطور ارورهاشو طوری که میخواید نمایش داده بشه تنظیم کنید و یا محدودیت بزارید برای نوع فایلهایی که میشه آپلود کرد و...
سلام
مرسی کارم راه افتاد
من یه کدی میخوام که نزاره کدهای html یا php موقع ثبت وارد بانک بشه یا نمایش داده بشه باید چیکار کنم نمایشش رو بگید هم مشکلم حل میشه
ببین کدوم یکی از این توابع به دردت میخوره:
[php]
strip_tags
htmlspecialchars
htmlentities
str_replace
eregi_replace
...
[/php]
سلام
من تازه php شروع کردم این تگ ها رو کجا وارد کنم؟!
تشکر//