PDA

View Full Version : multi_part_form



mohsenshahab
دوشنبه 27 مهر 1388, 14:25 عصر
سلام من یه فرم دارم که چند تا فیلد داره و اطلاعات اون رو به db منتقل می کنه . یکی از فیلد ها هم یک عکس رو توی یک پوشه آپ میکنه و نام عکس رو در dbذخیره میکنه اما مشکلم اینجاست که نام فیلد عکس رو نمیتونه بگیره و هیچ نامی در db به عنوان نام عکس ذخیره نمیکنه --------------------------------------------

razzaghi.b
یک شنبه 03 آبان 1388, 08:54 صبح
سلام دوست عزیز:
وقتی که فایل تو آپلود میکنی با استفاده از این $this->upload->data() مینونی اطلاعات فایل بدست بیاری در واقع اطلاعات زیرو بهت میده

Array
(
[file_name] => mypic.jpg
[file_type] => image/jpeg
[file_path] => /path/to/your/upload/
[full_path] => /path/to/your/upload/jpg.jpg
[raw_name] => mypic
[orig_name] => mypic.jpg
[file_ext] => .jpg
[file_size] => 22.2
[is_image] => 1
[image_width] => 800
[image_height] => 600
[image_type] => jpeg
[image_size_str] => width="800" height="200"
)

mohsenshahab
سه شنبه 05 آبان 1388, 11:29 صبح
سلام و ممنون از جوابتون .
ولی سوال من چیز دیگه ای هست
سوال من اینه که چه جوری میشه نام فیلد form_upload رو به db فرستاد .همین
چون فرم من تمام اطلاعات (نام .نام حانوادگی و...) رو به db اضافه میکنه ولی به جای نام عکس یه صفر میزاره .ممنون اگه کمک کنین

razzaghi.b
چهارشنبه 06 آبان 1388, 19:08 عصر
ببین من با این تابع اسم فایل ها رو چاپ می کنم

function list_file(){
$data['file_list'] = get_dir_file_info('./image/uploads/');
$data['count_file'] = count($data['file_list']);
$this->load->view('listfile_view',$data);
}
ها لا تو view چاپ میکنم


<table width="60%" border="0" cellpadding="0" cellspacing="0" class="grid">
<tr>
<td width="45%" align="center">نام</td>
<td width="15%" align="center">اندازه</td>
<td width="30%" align="center">تاریخ ایجاد</td>
<td width="10%" align="center">حذف</td>

</tr>

<?php while (list($key, $val) = each($file_list)) :?>
<tr align="center">
<td><?=$key?></td>
<?php for($i=0;$i<1;$i++):?>
<td><?=$file_list[$key]['size']?> کیلو بایت </td>
<td><?=$file_list[$key]['date']?></td>
<?php endfor;?>
<td><a href="index.php/file/remove/<?=$key?>"><img src="image/delete.gif" /></a></td>
</tr>

<?php endwhile;?>

</table>
به فیلد تو دیتا بیس نگاه کن شاید مقدارش اشتباه شده

mohsenshahab
سه شنبه 12 آبان 1388, 15:53 عصر
سلام آقا رضا و ممنون از جوابتون
من فکر میکنم نتونستم سوالم رو درست مطرح کنم، ببینید من یه db دارم که این فیلد ها رو داره
id file_name file_photo

حالا از view شروع میکنم(ببخشید اگه تو سینتکس اشتباه میکنم چون الان خونه نیستم)


<?=multipart_form('myclass/upload');?>
<?php
$file_name=array(
'name' => 'file_name',
'id' =>'file_name',
'value' =>''
); ?>
<?=form_input($file_name);?>
<?
$file_photo=array(
'name' => 'file_photo',
'id' =>'file_photo',
'value' =>''
); ?>
<?=form_upload($file_photo);?>
.......................
.......................
......................

حالا توی model مینویسیم


<?php
.........................
..........................
function insert($file_name,$file_photo)
{
$data=array(
'file_name' =>$file_name,
'file_photo' =>$file_photo
);
$this->db->insert('db',$data);


و کنترلر


<?php
...............................
..............................
..............................
function upload()
{
فایل را آپلود می کنیم
}
function insert{
$file_name=$this->input->post($file_name);
$file_photo=$this->input->post($file_photo);
$this->model->insert($file_name,$file_photo);
............................
...........................

ممکنه بگی این چه جور کد نوشتنیه ولی من فقط می خواستم سوالم رو مطرح کنم
اما سوال:"
وقتی اطلاعات رو وارد میکنم نام فایل (file_name ) تو db درج میشه و عکس هم در پوشه مورد نظر آپ میشه اما به جای نام عکس توی db یه 0 میذاره

razzaghi.b
چهارشنبه 13 آبان 1388, 18:32 عصر
سلام دوست گل من اسم من بهروز رزاقی هستش . 'رضا نیست'
تا جایی که من فهمیدم شما می خوای یه فایل آپلود کنی و اسمشو تو دیتا بیس ذخیره کنی درسته ؟؟؟
حالا به فایلهایی که من برات ضمیمه کردم یه نگاهی بکن ببین درستن ؟؟ :لبخندساده:
39350

mohsenshahab
پنج شنبه 14 آبان 1388, 09:00 صبح
آقا بهروز دست گلت درد نکنه .

hidensoft
پنج شنبه 22 بهمن 1388, 10:02 صبح
اشتباه شما دوست عزیز در این بود که برای گرفتن نام File از

$file_name=$this->input->post($file_name);
استفاده کردید
تابع Post اطلاعاتی که توسط POST ارسال بشن رو می تونه داشته باشه اما برای دسترسی به اطلاعات فایل باید از FILES_$ یا کلاس مربوط به آپلود استفاده کنید.