PDA

View Full Version : مشکل در آپلود



aserfg
شنبه 05 دی 1388, 17:44 عصر
با سلام خدمت اساتید عزیز من برای آپلود فایل در داخل پوشه uplouded با مشکل برخورد کردم کد من :

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 200000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"/uplouded/". $_FILES["file"]["name"] );
echo "Stored in: " . "uplouded/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
برای ارسال فایلبه کد هم از فرم زیر استفاده کردم :

<form action="setting.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
و خطای زیر رو مشاهده می کنم :

Upload: collage1.jpg
Type: image/jpeg
Size: 56.3623046875 Kb
Temp file: D:\wamp\tmp\php133.tmp

Warning: move_uploaded_file(/uplouded/collage1.jpg) [function.move-uploaded-file (http://localhost/my_web/function.move-uploaded-file)]: failed to open stream: No such file or directory in D:\wamp\www\my_web\setting.php on line 185

Warning: move_uploaded_file() [function.move-uploaded-file (http://localhost/my_web/function.move-uploaded-file)]: Unable to move 'D:\wamp\tmp\php133.tmp' to '/uplouded/collage1.jpg' in D:\wamp\www\my_web\setting.php on line 185
Stored in: uplouded/collage1.jpg
ضمنا من فقط می خوام که فایل در پوشه ذکر شده آپلود بشه .

لطفا راهنمایی بفرمایین .

mst_ab
شنبه 05 دی 1388, 18:51 عصر
پوشه ی uplouded وجود داره و مجوزش 777 هست؟ در ضمن uplouded هم اشتباه نوشتی!
درستش uploaded هست!

afshin9032
شنبه 05 دی 1388, 23:01 عصر
به احتمال زياد مال همان غلط املايي uplouded است چون پيغام خطا مال عدم وجود فايل هست

aserfg
یک شنبه 06 دی 1388, 11:59 صبح
نه مشکل از اون نیست ببینید تا اینجا رو من می دونم بعد از این که فرم از نوع file مقادیر رو به صفحه برگردوند فایل در شاخه tmp سرور ذخیره می شه و بعد با استفاده از کدهایی که من قرار دادم چک می کنه اگه اون محدودیتهای ایجادشده برقرار بود (مثلا نوع فایل jpg یا gif بود)توسط کد زیر فایل رو به پوشه مورد نظر یعنیuplouded (می دونم غلط املایی داره لطفا به اصل سئوال جواب بدین) منتقل می کنه مشکل کار همین جاست .

move_uploaded_file($_FILES["file"]["tmp_name"],
"/uplouded/". $_FILES["file"]["name"] );
یعنی فایل موجود در مسیر شاخه tmp رو به مسیر ذکر شده انتقال بده.
مورد جالب اینکه وقتی کد زیر رو بدین شکل اصلاح می کنم :

move_uploaded_file($_FILES["file"]["tmp_name"],
"/uplouded/] );
انتقال انجام می شه اما نه به پوشه uplouded بلکه به پوشه ای که این پوشه در اون قرار داره .
لطفا اساتید گرامی کمک کنند.
ممنون.

aserfg
چهارشنبه 09 دی 1388, 10:40 صبح
اساتيد گرامي پس چي شد جواب ما؟؟؟؟؟؟؟؟؟؟؟؟؟؟

soheil.moradi
پنج شنبه 10 دی 1388, 17:47 عصر
عزیز، تو لاینی که move_uploaded_file را نوشتی، تو آرگومان دومش، اسلش اول خط (/) را بردار
اصولاً تو هيچ جایی در php نمیتونید برای include کردن یا copy کردن فایلها از / در اول خط آن استفاده کرد
موفق باشی

afshin9032
جمعه 11 دی 1388, 00:33 صبح
عزیز، تو لاینی که move_uploaded_file را نوشتی، تو آرگومان دومش، اسلش اول خط (/) را بردار
اصولاً تو هيچ جایی در php نمیتونید برای include کردن یا copy کردن فایلها از / در اول خط آن استفاده کرد
موفق باشی

اون / به پوشه root سرور اشاره مي كنه و درست استفاده شده :چشمک:

he3117
جمعه 11 دی 1388, 01:35 صبح
به نظر من هم اون اسلش اضافی هست همچنین احتمالا فولدر هنوز ایجاد نشده

afshin9032
جمعه 11 دی 1388, 09:05 صبح
به نظر من هم اون اسلش اضافی هست همچنین احتمالا فولدر هنوز ایجاد نشده
اگه توضيحات دستور move_uploaded_file در php manual رو ديد بزني اون هم از / در مسير دهي استفاده كرده
پس اشتباه در استفاده از / نيست