Попытка загрузить изображение в каталог / assets / images /, и оно работает на локальном хосте, но при отправке на сервер тот же код не работает, и консоль говорит: Uncaught SyntaxError: Неожиданный конец ввода JSON
Я обновил файл .htaccess, чтобы показать следующее:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|assets|upload|robots\.txt|.*\.css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
но это не помогло
При отправке:
$('#submit').submit(function(e){
var newoi = $( "tr:last" ).data('order_index') + 1;
$('input[name="order_index"]').attr('value',newoi);
e.preventDefault();
$.ajax({
url:'<?php echo base_url('billboard/do_upload');?>',
type:"post",
data: new FormData(this),
processData:false,
contentType:false,
cache:false,
async:false,
success: function(data){
alert(data);
console.log(data);
var data = JSON.parse(data);
$('#gallery').append('<tr class="photos" id="' + data.id +'" data-order_index="' + data.order_index + '"><td><button class="up"> ^ </button><button class="down"> v </button></td><td><img src="/assets/images/' + data.url + '"></td><td><button class="delete">delete</button></td></tr>');
bindDeactivate();
},
error: function(jqxhr, status, exception) {
alert('Exception:', exception);
}
});
});
и консоль на локальных выходах:
{"success":true,"id":32,"location_id":"2","url":"eb3bc54c5c8d1261d3ef0cf75a32b17f.png","order_index":"1"}
но на моем сервере выводит:
Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at Object.success (index:155)
at i (jquery-3.2.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.2.1.min.js:2)
at A (jquery-3.2.1.min.js:4)
at XMLHttpRequest.<anonymous> (jquery-3.2.1.min.js:4)
at XMLHttpRequest.send (<anonymous>:1:781)
at Object.send (jquery-3.2.1.min.js:4)
at Function.ajax (jquery-3.2.1.min.js:4)
at HTMLFormElement.<anonymous> (index:144)
php-код, по которому он попадает:
function do_upload(){
$config['upload_path']="./assets/images";
$config['allowed_types']='gif|jpg|png';
$config['encrypt_name'] = TRUE;
$this->load->library('upload',$config);
if($this->upload->do_upload("file")){
$data = array('upload_data' => $this->upload->data());
$location_id= $this->input->post('location_id');
$url = $data['upload_data']['file_name'];
$order_index = $this->input->post('order_index');
$data = array(
'location_id' => $location_id,
'url' => $url,
'order_index' => $order_index
);
$result['success'] = $this->db->insert('billboard_photos', $data);
$result['id'] = $this->db->insert_id();
$result['location_id'] = $location_id;
$result['url'] = $url;
$result['order_index'] = $order_index;
echo json_encode($result);
}
Я не уверен, что является причиной проблемы, но я читал, что это может быть связано с файлом htaccess. Я удалил index.php из URL, но он подается по адресу https: //, поэтому я не знаю, является ли это частью проблемы.
Заранее спасибо за помощь!