Я пытаюсь реализовать функцию загрузки изображений на нашей веб-платформе.В настоящее время я получаю сообщение об ошибке «Вы не выбрали файл для загрузки».Он должен работать без отправки, потому что я не хочу обновлять страницу, а кнопки отправки будут запускать другие основные функции платоформ.
Моя форма:
<div id="selectMotiv">
<?php echo form_open_multipart('upload/image');?>
<input type="file" accept="image/*" id="motivImage" name="motivImage"/>
<button class="btn btn-outline-primary" id="buMotivUpload" type="submit">Upload</button>
<?php echo form_close(); ?>
<div id="uploaded_image">
</div>
</div>
Мои js:
$("#buMotivUpload").click(function (e) {
//$('form').on('submit', function (e)) {
//e.preventDefault();
console.log($('#motivImage').val());
var upload_image = $('#motivImage').val();
if ($('#motivImage').val() == ''){
alert("Please Select the File");
} else {
console.log(upload_image);
$.ajax({
url: 'apps/upload',
method: "POST",
data: upload_image,
contentType: false,
datatype: "json",
cache: false,
processData: false,
success: function (data){
$('#uploaded_image').html(data);
}
});
}
});
Мой контроллер:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Upload extends CI_Controller {
public function index() {
$data = $_POST;
if(isset($_FILES["motivImage"]["name"])){
$config = array(
'upload_path' => "./uploads/",
'allowed_types' => "gif|jpg|png|jpeg",
'overwrite' => TRUE,
'max_size' => "2048000" // Can be set to particular file size , here it is 2 MB(2048 Kb)
//'max_height' => "768",
// 'max_width' => "1024"
);
$this->load->library('upload', $config);
if($this->upload->do_upload('motivImage')){
$data = $this->upload->data();
echo 'success';
//$this->load->view('upload_success',$data);
}else{
echo $this->upload->display_errors();
//$this->load->view('custom_view', $error);
}
}else{
echo json_encode($data);
}
}
}