PDA

View Full Version : مشکل عجیب در اپلود فایل در php



M.Hashemi2007
جمعه 15 آبان 1394, 22:49 عصر
با سلام
من با ۲ کد ساده زیر می خواهم فایل های zip , rar , 7z را upload کنم اما نمیشه.
هیچ error خاصی هم نمیده و صفحه خالی نشون میده و اگر هم error بده میگه index فایل موجود نیست.(وقتی تست کردم دیدم اصلا عمل post انجام نمیشه)
کد اول :


<form action="test.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="submit" name="snd" />
</form>

کد دوم :


$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}

لینک دانلود کد :

http://s3.picofile.com/file/8221368626/test7.zip.html
تصویر خطا
136530
----
در ضمن :
من از wamp 64 bit اخرین نگارش استفاده می کنم(تو درایو d نصب شده)(mime.type را نیز چک کردم مشکلی نداشت)(تنظیمات upload در php.ini هم چک کردم مثلا از نظر حجم و زمان و temp dir هیچ مشکلی نیست).
ویندوزم هم 10 enterprise 64 bit است.
انتی ویروس هم eset smart security 9 است.
گفتم شاید این اطلاعات بدرد بخوره.
---
دوستان خواهش می کنم در این مورد راهنمایی کنید.
با تشکر

pbm_soy
جمعه 15 آبان 1394, 23:25 عصر
این بخشهایی از مثال سایت w3schools.com است ظاهرا که همه چی درست! ولی پیشنهاد اسم و آی دی تگ input مربوط به فایل را در html فقط یک حرفی بگیرید تا ببینید خطا رفع میشود یا خیر! ویا نام آنرا از html کپی کنید و در صفحه php در داخل کدهرجا نیاز باشد paste کنید تا مطمین شود که ایراد از آن نیست بازم میگم نتم تگ را یک حرفی بگیرید که احیانا خطای پیش بینی نشده ای پیش نیاد!
چون خطا از اندیس آرایه $_FILES ایراد میگیرد و میگه چنین اندیسی تعریف نشده است و وجود ندارد! اندیسهای این آرایه توسط خود php در زمان پست شدن فرم به سمت سرور مقداردهی میشود در واقع با نام تگهای input مقدار دهی میشود

محسن شامحمدی
شنبه 16 آبان 1394, 07:46 صبح
$target_dir = "uploads/"; if (~empty($_FILES ) { $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file) ) echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; else echo "upload wasn't successful"; } else { echo "Sorry, there was an error uploading your file."; }

also check php.ini for these parameters

post_max_size = 100M
upload_max_filesize = 100M

M.Hashemi2007
شنبه 16 آبان 1394, 08:35 صبح
این بخشهایی از مثال سایت w3schools.com است ظاهرا که همه چی درست! ولی پیشنهاد اسم و آی دی تگ input مربوط به فایل را در html فقط یک حرفی بگیرید تا ببینید خطا رفع میشود یا خیر! ویا نام آنرا از html کپی کنید و در صفحه php در داخل کدهرجا نیاز باشد paste کنید تا مطمین شود که ایراد از آن نیست بازم میگم نتم تگ را یک حرفی بگیرید که احیانا خطای پیش بینی نشده ای پیش نیاد!
چون خطا از اندیس آرایه $_FILES ایراد میگیرد و میگه چنین اندیسی تعریف نشده است و وجود ندارد! اندیسهای این آرایه توسط خود php در زمان پست شدن فرم به سمت سرور مقداردهی میشود در واقع با نام تگهای input مقدار دهی میشود

با سلام
ممنون از جوابتون.
تست کردم نشد!!!
با تشکر

M.Hashemi2007
شنبه 16 آبان 1394, 08:38 صبح
$target_dir = "uploads/"; if (~empty($_FILES ) { $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file) ) echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; else echo "upload wasn't successful"; } else { echo "Sorry, there was an error uploading your file."; }

also check php.ini for these parameters

post_max_size = 100M
upload_max_filesize = 100M

با سلام
اولین error که داد ~ را not نشناخته بود و مجبور شدم از ! استفاده کنم.
دیگه خطایی نداد ولی مشکل پابرجاست.
تنظیمات php.ini را نیز چک کردم بازم جواب نداد.
با تشکر

M.Hashemi2007
شنبه 16 آبان 1394, 08:40 صبح
با سلام
دوستان روی یک سیستم دیگه با windows 8 32 bit و xampp امتحان کردم جواب داد.
اما زمانی که wamp را نصب کردم دوباره به همین مشکل برخوردم.
میتونه مشکل از wamp باشه؟؟؟
با تشکر