PDA

View Full Version : سوال: نوشتن آپلود در معماری 3 لایه و اسمارتی بدون رفرش شدن



h.rezaee
جمعه 15 شهریور 1392, 12:04 عصر
سلام به دوستان و اساتید عزیز. بنده برای قسمتی از یک CMS در حال نوشتن آپلود سنتر آن هستم . این آپلود سنتر درست کار می کنه ولی زمانی همین رو در زمینه jQuery Ajax به کار می برم تا از رفرش شدن صفحه جلو گیری کنم ، درست اجرا نمیشه ؟!!!!
طبق سرچ هایی که داشتم متوجه شدم که در jquery ajax امکان آپلود وجود نداره ؟!؟!؟!؟
حالا نحوه کد نویس ایم رو میگم تا شاید شما عزیزان بتونید راهنمایی کنید.
ببینید برای نوشتن به صورت jquery ajax بنده action فرم رو خالی می زارم و کدهای مربوط به آپلود رو درون یک function که در پوشه js هست قرار می دم و این js مشخصات فایل مربوطه رو به یک ajaxfunction.php میفرسته که درون این فایل کدهای php مربوط به آپلود وجود داره، منتها نمیشناسه؟؟؟؟؟؟؟؟؟؟؟
این کد مربوط به html :

<form method="POST" action="" enctype="multipart/form-data" name="upload">
select files : <input type="file" id="uploadname" />
<a href="javascript:void(0)" onclick="uploadfileindb()">upload</a>
</form>

و این هم کدهای مربوط به .js :

function uploadfileindb()
{
uploadfile = $('#uploadname').val();
$.post('../business/ajaxFunctions.php',
{
uploadname:uploadfile
}
,function(data)
{
$('#messsage').html(data);
}

);
}


و این هم کد های مربوط به php :

if(isset($_POST['uploadname']))
{
$uploaddir = '';
$uploadfile = $uploaddir . basename($_FILES['uploadname']['name']);
if(move_uploaded_file($_FILES['uploadname']['tmp_name'], $uploadfile)) {
echo "Succesfuly.";
}else {
echo "Failed";
}
}


ممنون میشم راهنمایی بفرمائید.

h.rezaee
جمعه 15 شهریور 1392, 16:59 عصر
سلام دوباره، دوستان تا اونجا که بنده متوجه شدم بخش js این کد درست نیست، چون باید از $.post استفاده نکنیم

h.rezaee
جمعه 15 شهریور 1392, 23:17 عصر
از دوستان واقعا کسی نیست راهنمایی کنه؟

kartuf
شنبه 16 شهریور 1392, 01:46 صبح
دوست عزیز ایجکس توانایی آپلود نداره شما باید از یک ایفرم به عنوان واسطه آپلود استفاده کنید البته توی نت سرچ کنید پلاگین کاملش موجود هست

h.rezaee
شنبه 16 شهریور 1392, 13:26 عصر
دوست عزیز ایجکس توانایی آپلود نداره شما باید از یک ایفرم به عنوان واسطه آپلود استفاده کنید البته توی نت سرچ کنید پلاگین کاملش موجود هست
ممنون . این رو میدونم . تغییراتش رو هم اعمال کردم منتها نمی دونم چرا توی اسمارتی که قرار داده میشه کار نمیکنه؟

saidshp
شنبه 16 شهریور 1392, 14:14 عصر
با ورژن ۲ xmlhttprequest و formdata میشه ولی مرورگر باید شی formdata رو ساپورت کنه. برای ie ورژن 10+ باید استفاده کنید.
https://developer.mozilla.org/en-US/docs/Web/API/FormData
با jquery هم میشه فقط باید به data شی formdata رو بدین. و یه دو تا تنظیم دیگه هم داره که الان یادم نیست سرچ کنید.

h.rezaee
شنبه 16 شهریور 1392, 15:05 عصر
با ورژن ۲ xmlhttprequest و formdata میشه ولی مرورگر باید شی formdata رو ساپورت کنه. برای ie ورژن 10+ باید استفاده کنید.
https://developer.mozilla.org/en-US/docs/Web/API/FormData
با jquery هم میشه فقط باید به data شی formdata رو بدین. و یه دو تا تنظیم دیگه هم داره که الان یادم نیست سرچ کنید.
ممنون. ولی بنده این رو نمی دونم که آیا کاربر حتما از ie بالاتر از 10 استفاده می کنه یا نه که یک نقص در برنامه به رحساب می آید. می خواهم طوری باشه که در همه مرورگر ها جواب بده. ولی باز هم از راهنمایی هاتون ممنون