• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

کپی فایل در Directory

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
سلام
من مي خوام يك فايل رو كه از طريق<input type=file> دریافت کردم رو در یک Directory مشخص کپی کنم . این کار از طریق دستور( copy(filename1,filename2 امکان نداره. میشه یکی به من بگه باید چیکار کنم؟!!! :blink:
 

knowhow

مدیران قدیمی
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
3,478
لایک‌ها
22
منظورت رو دقیقا بگو.
ببین وقتی شما فایلی رو با فرم می گیری. (مثلا یه فرم برای upload فایل درست کردی) این فایل پس از اینکه فرم submit شد در یک دایرکتوری tmp قرار میگیره.

حالا شما با دستور

کد:
move_uploaded_file($source,$dest))

كه در اون sourc آدرس فایل upload شده است که می تونی با دستور
کد:
$HTTP_POST_FILES['file1']['tmp_name']
پیداش کنید. file1 در دستور بالا نام فیلدی است که در فرم در قسمت upload استفاده کردید.
در $dest هم باید آدرس local فایل رو بدید .
مثلا : home/user/data/pic/file.gif
 

mitch

کاربر تازه وارد
تاریخ عضویت
1 ژانویه 2004
نوشته‌ها
84
لایک‌ها
1
به نقل از 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 اين فايل را به جاي ديگري منتقل كنيد.
 
بالا