به نقل از shiva_mov :
سلام
من مي خوام يك فايل رو كه از طريق<input type=file> دریافت کردم رو در یک Directory مشخص کپی کنم . این کار از طریق دستور( copy(filename1,filename2 امکان نداره. میشه یکی به من بگه باید چیکار کنم؟!!! :blink:
براي Upload كردن فايل بايد يك سري نكات رو در نظر گرفت:
1. بايد يك پوشه براي ذخيرهي موقت فايلهاي Upload شده ساخته شود. اين پوشه را ميتوان درون c:/php ساخت.
2. اين مقادير بايد توي فايل php.ini مقدار دهي صحيح شود:
upload_tmp_dir = path/to/tmp/dir
اين مسير همون پوشهايست كه در بالا صحبت شد.
file_uploads = On
فعال كردن File Upload
upload_max_filesize = 2M
حداكثر اندازهي هر فايلي كه Upload ميشود.
post_max_size = 8M
حداكثر اندازهي دادهها در متد Post. مثلا اگر ميخواهيد 3 فايل 3MB را Upload كنيد اين مقدار بايد اندكي بيشتر از 9MB باشد.
3. فرم HTML بايد به اين شكل باشد:
<form method="post" action="path/to/next/file" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="250000"/>
<input type="file" name="afile"/>
</form>
عبارت enctype="multipart/form-data" بايد حتما قيد شود.
ورودي از نوع Hidden براي تعيين حداكثر اندازهي فايل است. اين ورودي بايد قبل از ورودي File بيايد. فايدهي اين كار اين است كه محدوديت اندازه قبل از فرستادن فايل براي سرور بررسي ميشود.
4. بعد از ارسال محتويات فرم، يك فايل با يك اسم موقت در پوشهاي كه بالا گفته شد ساخته ميشود. اين فايل پس از به پايان رسيدن اجراي فايلي كه در قسمت action آدرس داده شده بود به طور خودكار پاك ميشود. پس بايد در همين فايل تكليف اين فايل Upload شده معلوم گردد.
5. اطلاعات مربوط به فايلهاي Upload شده در متغير $_FILE به صورت يك آرايه قرار دارد:
$_FILE[…]['name']
نام حقيقي فايل
$_FILE[…]['tmp_name']
نام موقت فايل در پوشه
$_FILE[…]['size']
اندازهي فايل
$_FILE[…]['type']
نوع mime فايل
$_FILE[…]['error']
وضعيت خطاي اين فايل
6. با استفاده از دستور move_uploded_file اين فايل را به جاي ديگري منتقل كنيد.