[eluser]Unknown[/eluser]
Hi, i have problems uploading files with upload library, i did all what described in the docs, and also the script work on local server,but in the distant server the form is displayed and upload_path errors are displayed if there is a one.the problem was a blank page win clicking on the upload button.
there are my scripts:
controller : upload.php
Code:
class Upload extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->helper(array('url'=>'assets'));
$this->load->database();
$this->layout->set_titre("");
$this->layout->ajouter_css(MY_STYLES);
}
function index()
{
redirect(base_url().'index.php/home');
}
function do_upload($ann_id=0,$g_num_serie=0)
{
if($this->session->userdata('usr_id') == NULL )
redirect(base_url().'index.php/membres/connexion');
$d = $this->annonces_model->get_annonce(array('annonce_id' => $ann_id));
$annonce = $d->row();
$num_serie = $annonce->num_serie_ann;
$nb_images_charges = $annonce->annonce_nb_img;
$erreur = false;
$data = array();
$data['error'] = "";
$cat = $this->gen_fonctions->cat_name($annonce->annonce_cat_id);
$data['cat'] = $cat;
$data['annonce'] = $annonce;
//write_file('assets/test_file', 'ann_id :'.$ann_id.' | num serie(vrai):'.$num_serie.' | nserie:'.$g_num_serie.' | annonce:'.$annonce);
if($annonce == NULL OR empty($annonce) OR $num_serie != $g_num_serie)
{
$data['error'] = "Cette annonce n'exite pas !<br/>";
$erreur = true;
}
if($nb_images_charges >= 2)
{
$data['error'] .= "Vous avez déjà chargé deux images.<br/>Pour les modifier: Editez l'annonce et cliquez sur modifier images.";
$erreur = true;
}
//s'il y a une erreur
if($erreur)
{
$this->layout->views('head');
$this->layout->views('menu_gauche');
$this->layout->views('upload_message', $data);
$this->layout->view('footer');
return;
}
$config['upload_path'] = 'assets/images';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '600';
$config['max_width'] = '3000';
$config['max_height'] = '3000';
$config['file_name'] = $annonce->membre_id.'-'.$annonce->annonce_id;
$this->load->library('upload', $config);
if($this->upload->do_upload())
{
$this->resize_image($this->upload->data(),$annonce);
$data = array();
$data['ann_id'] = $ann_id;
$data['nserie'] = $g_num_serie;
$this->layout->views('head');
$this->layout->views('menu_gauche');
$this->layout->views('upload_succes', $data);
$this->layout->view('footer');
}
else
{
$data = array('error' => $this->upload->display_errors(),'ann_id' => $ann_id,
'cat' => $cat,'nserie' => $g_num_serie);
$this->layout->views('head');
$this->layout->views('menu_gauche');
$this->layout->views('upload_form', $data);
$this->layout->view('footer');
}
}
public function resize_image($img_data,$annonce,$insert=true)
{
}
}
View : upload_form.php
Code:
<?php echo $error;?>
<?php echo form_open_multipart(base_url().'index.php/upload/do_upload/'.$ann_id.'/'.$nserie);?>
<input type="file" name="userfile" size="20" />
<br /><br>
<input type="submit" value="upload" />
</form>
Also the redirect() function work in some pages but not in others.
Thanks for any help .
When i changed: define('ENVIRONMENT', 'production'); TO define('ENVIRONMENT', 'development'); in index.php
I received this error :
Code:
A PHP Error was encountered
Severity: Warning
Message: escapeshellarg() has been disabled for security reasons
Filename: libraries/Upload.php
Line Number: 1066