PDA

View Full Version : اضافه کردن عکس به مطلب



7asemoon
سه شنبه 16 تیر 1394, 19:14 عصر
من یه همچین فرمی دارم



<?php
$tblmenu = $db -> fetch_all("SELECT * FROM `tbl_adv` WHERE id=".$_POST['ads_edit']."");
foreach ($tblmenu as $tblmenu)
?>
<div class="panel-body bio-graph-info">
<div class="alert alert-success fade in">
<button data-dismiss="alert" class="close close-sm" type="button">
<i class="icon-remove"></i>
</button>
<strong>size:125*125</strong><br>
<strong dir="rtl">size:300*250</strong>
</div>
<form class="form-horizontal" role="form" onsubmit="edit_adv();return false" enctype="multipart/form-data">
<div class="form-group">
<label class="col-lg-2 control-label">عنوان</label>
<div class="col-lg-6">
<input type="text" class="form-control" id="edit_name" value="<?php echo $tblmenu['title']; ?>">
</div>
</div>
<div class="form-group">
<label class="col-lg-2 control-label">مقدار alt</label>
<div class="col-lg-6">
<input type="text" class="form-control" id="edit_alt" value="<?php echo $tblmenu['alt']; ?>">
</div>
</div>
<div class="form-group">
<label class="col-lg-2 control-label">لینک</label>
<div class="col-lg-6">
<input type="text" class="form-control" id="edit_link" value="<?php echo $tblmenu['href']; ?>">
</div>
</div>
<div class="form-group">
<label class="col-lg-2 control-label">تصویر</label>
<div class="col-lg-6">
<img src="../<?=$tblmenu["pic_url"];?>" style="max-width: 114px;min-width: 148px;max-height: 115px;min-height: 50px;">
<input type="file" id="edit_pic" name="file">
</div>
</div>
<div class="form-group col-lg-6">
<label class="col-lg-2 control-label">مطلب ویژه</label>
<div class="col-lg-6">
<select id="edit_special">
<option value="0" <?php if($tblmenu["special"]==0) echo "selected";?>>غیر فعال</option>
<option value="1" <?php if($tblmenu["special"]==1) echo "selected";?>> فعال</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<button type="submit" class="btn btn-success">ویرایش</button>
<button type="submit" class="btn btn-default">انصراف</button>
</div>
</div>
</form>
</div>


که ارسال میشه به



function edit_adv()
{
$.post('adv/coding.php',{edit_name:$("#edit_name").val(),edit_alt:$("#edit_alt").val(),edit_link:$("#edit_link").val(),edit_special:$("#edit_special").val()}
,function(response)
{
$("#box3").html(response).slideDown(600);
});
}


و نهایتا این کد اعمال میشه


if(isset($_POST['edit_name']))
{
if(!empty($_POST['edit_name']))
{
$important = CheckNum($_POST['edit_special']);
$up = "UPDATE `tbl_adv` SET title='".$_POST['edit_name']."', href='".$_POST['edit_link']."', alt='".$_POST['edit_alt']."',special=$important WHERE id='".$_SESSION['id']."' ;";
$db -> query($up);
echo '<script type="text/javascript"> $("#box3").hide();document.getElementById("box3").innerHTML = "عملیات با موفقیت انجام شد";</script>';
}
}


حالا سوال من اینه من چطور میتونم عکسی رو که در فرم قرار میدم در دیتابیس ذخیره کنم

H:Shojaei
سه شنبه 16 تیر 1394, 20:06 عصر
نیاز به ذخیره عکس نیست در دیتابیس..
شما عکس رو آپلود کنید توی یکی از دایرکتوری ها و نام عکس رو هم توی دیتابیس ذخیره کنید...
موقعی که میخواید بخونیدش مسیر دایرکتوری عکس که ثابته جایی که آپلود کردید نام عکس رو هم که توی دیتابیس دارید مسیر کامل به دست میاد بدین به تگ img و عکس نشون داده میشه...

7asemoon
چهارشنبه 17 تیر 1394, 08:28 صبح
نیاز به ذخیره عکس نیست در دیتابیس..
شما عکس رو آپلود کنید توی یکی از دایرکتوری ها و نام عکس رو هم توی دیتابیس ذخیره کنید...
موقعی که میخواید بخونیدش مسیر دایرکتوری عکس که ثابته جایی که آپلود کردید نام عکس رو هم که توی دیتابیس دارید مسیر کامل به دست میاد بدین به تگ img و عکس نشون داده میشه...

میشه توی همین کدی که نوشتم بگین چطور باید اعمال کنم

H:Shojaei
چهارشنبه 17 تیر 1394, 17:03 عصر
میشه توی همین کدی که نوشتم بگین چطور باید اعمال کنم
توضیحات کامل بود فکر کنم صبر کنید شاید کس دیگه ای کد کامل گذاشت...

7asemoon
چهارشنبه 17 تیر 1394, 18:26 عصر
توضیحات کامل بود فکر کنم صبر کنید شاید کس دیگه ای کد کامل گذاشت...

خیلی ممنون که لطف کردین و جواب دادین ولی هدف من از اینکه کدم رو قرار دادم فقط این بود که رو کد بهم نشون بدین

7asemoon
پنج شنبه 18 تیر 1394, 08:28 صبح
من مشکل اصلیم اینجاس
edit_special:$("#edit_pic").val()
وقتی این مقدار رو ارسال میکنه فقط نام عکس رو ارسال میکنه

H:Shojaei
پنج شنبه 18 تیر 1394, 18:19 عصر
خوب این کاری که شما میکنید واسه ارسال فایل به صورت ایجکس عملی نیست...
به این صورت باید عمل کنید:

//اینجا آی دی اون فایل رو به جای task-file میارید...
var fileData = $('#task-file').prop('files')[0];
var formData = new FormData();
formData.append('file', fileData);
formData.append('anotherData', likeUserName);
formData.append('anotherData2', likeEmail);
$.ajax({
url: URL + 'ajaxes/upload.php',
type: 'POST',
xhr: function() { // Custom XMLHttpRequest
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // Check if upload property exists
myXhr.upload.addEventListener('progress',progressH andlingFunction, false); // For handling the progress of the upload
}
return myXhr;
},
//Ajax events
beforeSend: function(){
},
success: function(data){
alert(data+'success upload and insert');
},
cache: false,
data: formData,
dataType:'json',
contentType: false,
processData: false,
error:function(){
alert('error ajax');
}
});

فایل upload هم به این صورت:


if (isset($_FILES["file"]) && isset($_POST["anotherData"]) && isset($_POST["anotherData2"])) {
$taskId = $_POST['anotherData'];

$uploadDirectory = DIR.'tasksFile/'; //specify upload directory ends with / (slash)

//Is file size is less than allowed size.
if ($_FILES["file"]["size"] > 5242880) {
die("-2");
}

$fileName = strtolower($_FILES['file']['name']);
$suffix = substr($fileName, strrpos($fileName, '.')); //get file extention
$rand= rand(1, 9999);
$newName = time() . $rand . $suffix; //new file name
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadDirectory . $newName)) {
$id=$sqlOPR->insert('file',"name=$newName");
$file['name']=$newName;
$file['fileId']=$id['id'];
echo json_encode($file);
} else { $file['error']='not uploaded';
echo json_encode($file); }
}

تابعی که اینسرت رو انجام میده از کلاسهای خودمه اشتباه نگیرید یه وقت... مقادیری هم که برگشت میده صفحه رو به عنوان مثاله اگر نمیخواید حذفشون کنید...

7asemoon
پنج شنبه 18 تیر 1394, 23:14 عصر
دست تون درد نکنه توضیحات تون خیلی مبسوط بود ولی من متاسفانه متوجه نشدم
یعنی هر کاری کردم نشد
اگر براتون امکان داره روی کدی که خودم گذاشتم اول تاپیک بگین چطوری باید انجام بدم. اگر هم که وقت گیر هست و براتون مقدور نیست ایرادی نداره از خیرش میگذرم