I am trying to implement a post functionality and want to pick message and image from a php view. My message functionality is working good. But on image upload i receive an error You did not select a file to upload
. This is my controller function
function post_func()
{
session_start();
echo $post_message=$_POST['post'];
echo $share_with=$_POST['share_with'];
echo $image=$_POST['image'];
if($image==null){
echo "<br/>no image<br/>";
}
else{
////////////////////////////////////////////////////////////////////////////////////////
$config['upload_path'] = './application/css';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
echo "<br/>";
echo $this->upload->display_errors();
echo "<br/> image error<br/>";
}
else
{
echo "<br/> reached <br/>";
session_start();
$this->membership_model->insert_images($this->upload->data(),$email);
$data = array('upload_data' => $this->upload->data());
echo "<br/ problem<br/>";
}
////////////////////////////////////////////////////////////////////////////////////////
}
$public;
if($share_with=="public"){
echo "1";
$public=true;
}else{
echo "0";
$public=false;
}echo "-----------------------------<br/>";
echo $user=$this->session->userdata('user_identification');
$data = array
(
'userid'=> $user,
'public' => $public,
'message' => $post_message,
'picname' => "None"
);
$this->load->model('membership_model');
$this->membership_model->add_message($data);
echo "</br>";
echo $user=$this->session->userdata('user_identification');
}
This is my view.
<?php echo form_open('search/post_func');?>
<!--<form id="loginForm" action="../search/post_func" method="post" enctype="multipart/form-data" >-->
<div id="your_post">
<div id="post_image">
<img id ="post_img" src="<?php echo $this->config->item('base_url'); ?><?php echo '/application/css/'. $img ?>"/>
</div>
<textarea name="post" rows="5" cols="30" placeholder="Share an update..." id="post_text" rows="2" value=""></textarea>
//other view items
<?php
echo form_close();
?>
Please help me
asked Nov 21, 2013 at 8:08
3
Change:
$this->upload->do_upload()
To this:
$this->upload->do_upload('my_file_input_name')
and it will work!!
Nickromancer
7,5418 gold badges58 silver badges76 bronze badges
answered Sep 4, 2014 at 7:53
mzalazarmzalazar
6,0863 gold badges34 silver badges31 bronze badges
5
Change:
<?php echo form_open_multipart('search/post_func');?>
answered Nov 21, 2013 at 8:20
Nil’zNil’z
7,4771 gold badge17 silver badges28 bronze badges
11
Your form type should be «multipart»
Change your form tag to:
<?php echo form_open_multipart('search/post_func');?>
answered Nov 21, 2013 at 10:54
user2936213user2936213
1,0211 gold badge8 silver badges19 bronze badges
1
enctype='multipart/form-data'
you should put previous attribute in form tag
$this->upload->do_upload('file_name')
pass input tag file name to pervious line in your controller
<input type="file" name ="file_name" >
answered Apr 13, 2017 at 11:05
Ahmed MahmoudAhmed Mahmoud
1,7041 gold badge17 silver badges21 bronze badges
example code is
$config['upload_path'] = FCPATH.'upload/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload');
$this->upload->initialize($config);
if ( ! $this->upload-> do_upload('userfile'))
{
$errors = $this->upload->display_errors();
$this->session->set_flashdata('error', $errors);
redirect('ur_link');
}
else
{
$data = array('upload_data' => $this->upload->data());
$fullpath= $data['upload_data']['full_path'];
$file_name = $data['upload_data']['file_name'];
}
}
answered Jul 26, 2016 at 7:07
1
Do this:
if(isset($_FILES['profile_pic']['name']) && !empty($_FILES['profile_pic']['name'])){
$config['upload_path']= './assets/img/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 10000;
$config['max_width'] = 10000;
$config['max_height'] = 10000;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('profile_pic'))
{
$error = array('error' => $this->upload->display_errors());
print_r($error);
exit;
}
else
{
$data = array('upload_data' => $this->upload->data());
if(!empty($data)){
$img1 = $data['upload_data']['file_name'];
}
}
}
$insert_data['profile_pic'] = $img1;
Alex M
2,7287 gold badges28 silver badges35 bronze badges
answered Sep 16, 2017 at 12:00
1
Another reason I find this problem to be occurred. if you forget to initialize after load your library:
$this->load->library('upload', $config);
$this->upload->initialize($config); //Make this line must be here.
I hope this might help you.
answered Jul 27, 2015 at 11:48
Indrasinh BiholaIndrasinh Bihola
2,0923 gold badges23 silver badges25 bronze badges
3
So note I was doing a mysql upload import and I got the «You did not select a file to upload» message. It turns out my import sql file had extra columns which caused the fail and returned this error message.
answered May 23, 2016 at 21:11
Robot70Robot70
6006 silver badges10 bronze badges
#php #codeigniter #codeigniter-2
#php #codeigniter #codeigniter-2
Вопрос:
Когда я загружаю изображения, как мне игнорировать ошибку «Вы не выбрали файл для загрузки» и отображать все другие ошибки при загрузке изображения?
for($i = 1; $i < 6; $i ) {
$upload = $this->upload->do_upload('image'.$i);
if (!$upload) {
$error = array('error' => $this->upload->display_errors());
var_dump($error);
} else {
$images = $this->upload->data();
}
}
Что я хочу сделать, так это при $upload
сбое, потому что файлы не были загружены, запустить:
$images = $this->upload->data();
Или отобразить другую ошибку загрузки изображения. Как я могу это сделать?
Комментарии:
1. Это не очень хорошая практика. Если вы все еще хотите это сделать, просто замените эту ошибку str_replace() или регулярным выражением. а затем отправить сообщение об ошибке в представление. И еще один вариант — изменить основную библиотеку. но это очень плохой вариант. Другой возможности сделать это с файлом библиотеки codeigniter нет. Почему вы хотите сделать так,?
Ответ №1:
Вы не можете — нет ни других ошибок, ни данных. Если вы посмотрите на библиотеку загрузки, вы увидите, что самое первое (понятно), что она проверяет, — это посмотреть, есть ли файл. Если файла нет, он устанавливает ошибку и завершает работу, поэтому больше ничего не обрабатывается:
// Is $_FILES[$field] set? If not, no reason to continue.
if ( ! isset($_FILES[$field]))
{
$this->set_error('upload_no_file_selected');
return FALSE;
}
я новичок в CodeIgniter
Я видел и пробовал несколько ответов, похожих на этот вопрос. Но все же отображает ту же ошибку.
Это мой взгляд
<?php
echo form_open_multipart('halaman_admin/tambah_gambar');
echo form_upload('userfile');
echo form_submit('upload', 'Upload');
echo form_close();
?>
мой контроллер
$config['upload_path'] = './assets/media/gambar/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$config['max_size'] = '5000';
$config['max_width'] = '2024';
$config['max_height'] = '1468';
$this->load->library('upload', $config);
$this->load->helper('form');
$this->load->helper('url');
$this->load->model('admin_model');
$data['pesan'] = '';
if(!$this->upload->do_upload())
{
if(isset($_POST['upload']))
$data['pesan'] = $this->upload->display_errors();
}
else
{
$data['upload_data'] = $this->upload->data();
$data['pesan'] = 'SUKSES';
$config_resize = array(
'source_image' => $data['upload_data']['full_path'],
'new_image' => './assets/media/thumb/',
'maintain_ration' => true,
'width' => 160,
'height' => 120
);
$this->load->library('image_lib', $config_resize);
if(! $this->image_lib->resize())
{
$data['pesan'] = $this->image_lib->display_errors();
}
}
$data['images'] = $this->admin_model->fetch_image(FCPATH.'assets/media/gambar');
$this->load->view('view_admin/upload_gambar_view', $data);
Моя модель
function fetch_image($path)
{
$this->load->helper('file');
return get_filenames($path);
}
есть ли что-нибудь, что может мне помочь?
потому что я пробовал несколько вещей, которые я нашел об этой ошибке, он все еще загружает ошибку и отображает «Вы не выбрали файл для загрузки».
Спасибо за вашу помощь
Всех недовольных жду на своем форуме ))))
А если по теме — именно эта ошибка возникает в очень большом числе случаев (+отследить её сложно, т.к. строка выводится в js в случаях пустого результата). Проверку лучше всего начать с
0) Отключаем flash загрузчик (сколько пробовал — ни разу не заработал…)
1) Директория загрузок — указана правильно? доступна? есть место? (ACP / «Поддержка» / «Проверка прав доступа к файлам»)
2) Права настроены правильно? лимит не исчерпан?
3) Нужные типы файлов разрешены?
4) Пробуем разные файлы (насколько помню текстовые файлы с некоторым содержимым могут зарезаться…)
5) Смотрим логи ошибок — там пусто?
6) Смотрим phpinfo(), значения указанных Ritsuk-ой настроек обеспечивают возможность загрузки вашего файла? (они могут быть определены не только в php.ini)
7) Есть ли запрещенные функции? какие?
Директория для временных файлов правильно настроена? доступна для записи? есть место?
9) Хм… сложный случай — лезем в код и и смотрим где падает (а можно сразу после п.4)
Изменено 16 Июля 2010 пользователем LastDragon
-
ошибка возникает при загрузке на форум файла например картинки!
-
Offline
x_under
Модераторы
Команда форума
Модератор- Регистрация:
- 25 апр 2007
- Сообщения:
- 2.576
- Симпатии:
- 16
- Баллы:
- 29
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
у меня такое постоянно, я давно уже ничего загрузить не могу
-
Offline
nbIpKuH_BaH9I
Модераторы
Команда форума
Модератор- Регистрация:
- 16 сен 2009
- Сообщения:
- 7.917
- Симпатии:
- 509
- Баллы:
- 204
-
Offline
shurikvz
Модераторы
Команда форума
Модератор- Регистрация:
- 1 окт 2009
- Сообщения:
- 8.547
- Симпатии:
- 343
- Баллы:
- 104
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Данная проблема связана с ограничением размера файлов, которые пользователи могут присоединить к сообщению.
Ограничение учитывает все файлы за все время работы форума.
Лимит будет увеличен, изменения вступят в силу примерно через 30 минут. -
Offline
nbIpKuH_BaH9I
Модераторы
Команда форума
Модератор- Регистрация:
- 16 сен 2009
- Сообщения:
- 7.917
- Симпатии:
- 509
- Баллы:
- 204
Может почикать их? Старые которые?
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
место не причем, а загрузить не могу все равно ((( и так после смены интерфейса как началось, так и не загружаю ничего
-
Offline
st88
Профессионал в 1С
Команда форума- Регистрация:
- 18 окт 2012
- Сообщения:
- 1.830
- Симпатии:
- 35
- Баллы:
- 54
я маленький файл на 4кб пытался прикрутить, выдает ошибку:
размер тут не при чём. раньше всё было ок!… -
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Такая ошибка выдается именно при ограничении размера.
Текущий лимит установлен в 100 мб, старые файлы удалять — тоже не панацея
Подумаем. -
Offline
st88
Профессионал в 1С
Команда форума- Регистрация:
- 18 окт 2012
- Сообщения:
- 1.830
- Симпатии:
- 35
- Баллы:
- 54
Старые файлы удалять не надо!) часто в темах прикладывают или нужную обработку или полезный скрин….)
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
я привела пример, у меня и 1мб не занято, а добавить не могу ((
-
Offline
Draco
Модераторы
Команда форума
Модератор- Регистрация:
- 28 окт 2009
- Сообщения:
- 13.722
- Симпатии:
- 960
- Баллы:
- 204
Разбираемся, приносим свои извинения..
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
разберитесь, пожлуйста. А извиняться — ну это рабочий момент. Всегда бывает. Просто порой скрин бы приложила, а приходиться изголяться схематично символами изображать то, что хочешь получить (((
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Сейчас лимиты увеличены для всех, просьба выложить скриншот, где видна проблема (можно ну яндекс-фотках, например)
-
Offline
st88
Профессионал в 1С
Команда форума- Регистрация:
- 18 окт 2012
- Сообщения:
- 1.830
- Симпатии:
- 35
- Баллы:
- 54
да не в размере дело и не в лимитах!!!!
Сам механизм загрузки файлов не работает!!!
Я нажимаю прикрепить файл, выбираю файл (скрин, размером 104Кб), он начинает его типа загружать и сразу вылетает ошибка!:
-
Offline
nbIpKuH_BaH9I
Модераторы
Команда форума
Модератор- Регистрация:
- 16 сен 2009
- Сообщения:
- 7.917
- Симпатии:
- 509
- Баллы:
- 204
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Уточните, пробовали использовать «простой менеджер загрузки»? (смотрите гиперссылку в самом низу скриншота)
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 556
- Баллы:
- 204
Я попробывал через этот простой менеджер загрузк — То же самое, не дает загрузить файл.
Может права на папки поменялись ???
Хостер ничего не творил ???
Просто так не может же возникнуть :%) -
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
а у меня выдает, что браузер не подходит (что-то такое). Использую Оперу, правда не обновляла на поседнюю версиюю, но и не самая старая вроде
Поделиться этой страницей