PDA

View Full Version : فرم آپلودبا JQuery و Ajax



amin_sltny
جمعه 23 اسفند 1392, 16:23 عصر
سلام دوستن من می خوام یه فرم بسازم که بتونم اطلاعات را در اون به وسیله آجاکس آپلود کنم.

فرممو به شکل زیر نوشتم:



<form style="float:right;width:19%;text-align:center;" id="UploadedForm" action="" method="post" enctype="multipart/form-data">
<input type="file" id="myuploadfile" name="myuploadfile" value="بارگزاری فایل"><br>
<p id="f1_upload_process">Loading...<br/><img src="loader.gif" /></p><p id="result"></p></form>

حالا توی js:


// Variable to store your files

// Add events
$('input[type=file]').on('change', prepareUpload);

// Grab the files and set them to our variable
function prepareUpload(event)
{
// Create a formdata object and add the files
//var data = $("#UploadedForm").serialize();

event.preventDefault();
//$.post("?req=site/manager&filebrowser&files",$('#UploadedForm').serialize(),function(data){$(' #f1_upload_process').html(data);});
$.ajax({
url: 'index.php?req=site/manager&filebrowser&files',
type: $('#UploadedForm').attr('method'),
data: $('#UploadedForm').serialize(),
cache: false,
processData: false, // Don't process the files
contentType: "multipart/form-data", // Set content type to false as jQuery will tell the server its a query string request
//contentType:"multipart/form-data",
success: function(data, textStatus, jqXHR)
{
if(typeof data.error === 'undefined')
{
// Success so call function to process the form
$('#f1_upload_process').html(data);
}
else
{
// Handle errors here
$('#f1_upload_process').html(data.error);
}
},
contents: function(data)
{
$('#f1_upload_process').html(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
// Handle errors here
$('#f1_upload_process').html(textStatus);
// STOP LOADING SPINNER
}
});
}


و کدهای php یا upload.php:


<?php
if(isset($_FILES["myuploadfile"])){ $UploadDirectory = baseAddress.'assets/uploads/'.date('Y-M').'/'; if(!file_exists($UploadDirectory)) { mkdir( $UploadDirectory, 0755); } //if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])){ // die('123'); //} //Is file size is less than allowed size. if ($_FILES["myuploadfile"]["size"] > 8000000) { die("حداکثر حجم مجاز برای آپلود 8 مگابایت می باشد"); } //allowed file type Server side check switch(strtolower($_FILES['myuploadfile']['type'])) { //allowed file types case 'image/png': case 'image/gif': case 'image/jpeg': case 'image/pjpeg': case 'text/plain': case 'text/html': //html file case 'application/x-zip-compressed': case 'application/pdf': case 'application/msword': case 'application/vnd.ms-excel': case 'video/mp4': break; default: die('فرمت فایل مجاز نمی باشد.!'); //output error } $File_Name = strtolower($_FILES['myuploadfile']['name']); $File_Ext = substr($File_Name, strrpos($File_Name, '.')); //get file extention $Random_Number = rand(0, 9999999999); //Random number to be added to name. $NewFileName = $Random_Number.$File_Ext; //new file name if(move_uploaded_file($_FILES['myuploadfile']['tmp_name'], $UploadDirectory.$NewFileName )) { die('فایل با موفقیت آپلود شد'); }else{ die('در زمان آپلود فایل خطایی رخ داده است'); } }else{ die('Something wrong with upload! Is "upload_max_filesize" set correctly? ');}?>

اما این کدها درست کار نمی کنه و اطلاعات فایل را به upload.php نمی فرسته اگه میشه کمکم کنید من این کد ها را درست بنویسم و بهم بگید اشکال چیه مثلا یه خطایی که می گیره:


Warning: Missing boundary in multipart/form-data POST data inUnknown on line 0

amin_sltny
شنبه 24 اسفند 1392, 07:52 صبح
کسی نبود کمک من کنه؟

ravand
یک شنبه 25 اسفند 1392, 08:40 صبح
اگه فرم آپلود فایل میخوای برو صفحه ی 96 این کتاب:
http://www.barnamenevisi.blogsky.com/1392/10/23/post-121

amin_sltny
یک شنبه 25 اسفند 1392, 18:09 عصر
اگه فرم آپلود فایل میخوای برو صفحه ی 96 این کتاب:
http://www.barnamenevisi.blogsky.com/1392/10/23/post-121

مشکل کد هامو پیدا کردم قسمت جی کوئری را باید به این صورت بنویسی:
var uploadstart = function(){ event.preventDefault();
var formData = new FormData($('#uploadform').get(0));
$.ajax({
url: '?req=site/manager&filebrowser&files',
type: "POST",
data: formData,
cache: false,
contentType: false,
processData: false,
xhr: function()
{
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress',progress_ upload);
}
return myXhr;
},
success: function(result)
{
$('#progress').hide();
$('#btnchoose').show();
refreshpanel();
},
error: function(data)
{
$("#error").show().html(data);
$('#progress').hide();
$('#btnchoose').show();
},
beforeSend:function(){
$("#error").hide();
$('#btnchoose').hide();
$("#progressbar").css('width', 0);
$('#progress').show();
}
});
}

sg.programmer
پنج شنبه 24 مهر 1393, 21:16 عصر
فایا خراب هست کسی آپلود میکنه؟