您好我有这个表单,我使用ajaxForm在images文件夹中提交我的图像。当我试图上传图片时,我已经有了ajaxForm的库,我注意到我上传的图片不会上传到assets / uploads文件夹我试过print_r路径但它显示图像的文件名但不会插入到assets / uploads文件夹在这里是我的视图
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script>
jQuery(document).ready(function($){
$("#uploadPhoto").change(function(){
var val = $(this).val();
switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
case 'gif': case 'jpg': case 'png': case 'jpeg':
$("#ptxt").fadeOut();
$("#buttonGallery").show();
break;
default:
$(this).val('');
// error message here
$("#ptxt").fadeIn();
$("#buttonGallery").hide();
break;
}
});
$('#send_form').ajaxForm({
target: '.result',
success: function(data) {
}
});
});
</script>
<form id="send_form" enctype="multipart/form-data" action="<?php echo base_url().'admin/rooms/addGallery'?>" method="post" >
<div class="row">
<div class="col-md-4">
<div><h3>Gallery</h3></div>
<div class="alert alert-danger" id="ptxt">
<p>Invalid file type</p>
</div>
<div class="form-group">
<label for="uploadPhoto">Upload photo</label>
<input type="file" name="uploadPhoto" id="uploadPhoto" placeholder="Enter ">
</div>
<div class="form-group">
<label for="photoTitle">Photo title</label>
<input type="text" name="photoTitle" class="form-control" id="photoTitle" placeholder="Photo title " >
</div>
<div class="form-group">
<label for="photoDescription">Photo description</label>
<textarea name="photoDescription" class="form-control" id="photoDescription" placeholder="Photo description " rows="5"></textarea>
</div>
</div>
</div>
<input type="hidden" name="galleryId" id="galleryId" value="<?php echo $getRoomDetails->id; ?>">
<button type="submit" name="buttonGallery" id="buttonGallery" class="btn btn-primary">Save</button>
</form>
我的控制器
public function addGallery(){
if($this->upload->do_upload('uploadPhoto')){
$data['upload_data'] = $this->upload->data();
$uploadSuccess = $data['upload_data'];
$raw_name = $uploadSuccess['file_name'];
$this->load->library('image_lib');
$file_name = $raw_name;
$this->load->library('image_lib');
$image_path = 'assets/uploads/' .$file_name;
echo $image_path; exit;
$config['image_library'] = 'gd2';
$config['source_image'] = $image_path;
$config['create_thumb'] = FALSE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 150;
$config['height'] = 110;
$config['new_image'] = 'thumb_'.$file_name;
$this->image_lib->initialize($config);
$this->image_lib->resize();
$this->image_lib->clear();
}
}
我在public function __construct
中添加了一个配置,以确保
public function __construct(){
parent::__construct();
$config['upload_path'] = 'assets/uploads/';
// set the filter image types
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '9000';
$config['encrypt_name'] = TRUE;
$this->load->library('upload', $config);
$this->upload->initialize($config);
$this->upload->set_allowed_types($config['allowed_types']);
$data['upload_data'] = '';
}
有人可以帮我解决这个问题吗?TIA
答案 0 :(得分:0)
尝试为您的
提供完整路径$配置[ 'upload_path']
我相信您需要提供完整路径才能保存图像。要获得完整路径,您可以使用函数
getcwd()
获取当前的工作目录,并且需要连接文件夹的剩余部分。
在加载帮助程序之前,还要初始化配置数组。
答案 1 :(得分:0)
您的控制器文件存在问题
在配置设置之前上传文件
您的控制器代码将是
<?php
public function addGallery(){
$data['upload_data'] = $this->upload->data();
$uploadSuccess = $data['upload_data'];
$raw_name = $uploadSuccess['file_name'];
$image_path = 'assets/uploads/' . $file_name;
$config['upload_path'] = 'assets/uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
if (!$this->upload->do_upload()) {
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
} else {
$data['upload_data'] = $this->upload->data();
$uploadSuccess = $data['upload_data'];
$raw_name = $uploadSuccess['file_name'];
$file_name = $raw_name;
$this->load->library('image_lib');
$image_path = 'assets/uploads/' .$file_name;
$config['image_library'] = 'gd2';
$config['source_image'] = $image_path;
$config['create_thumb'] = FALSE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 150;
$config['height'] = 110;
$config['new_image'] = 'thumb_'.$file_name;
$this->image_lib->initialize($config);
$this->image_lib->resize();
$this->image_lib->clear();
}
}
并从控制器构造函数中删除上传部分