J'ai du mal à télécharger l'image sur mon serveur local.
Je viens de commencer à apprendre Codeigniter en référençant https://www.phptpoint.com/ Codeigniter-upload-file-image / et documentation Codeigniter.
J'ai suivi chaque étape, mais lorsque je clique sur le bouton de téléchargement, je ne peux pas ouvrir la page. safari dit l'erreur "Impossible d'ouvrir la page".
Il devrait y avoir une erreur que j'ai faite dans le code.
Est-ce que quelqu'un le trouve, s'il vous plaît?
PS: J'ai même eu une erreur en ne joignant pas l'image. peut-être que l'erreur ne concerne pas le téléchargement de l'image?
<!DOCTYPE html> <html> <head> <title>Upload Image in Codeigniter</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> // I'm not sure but referenced website used "@" right before $error so I kept using. when omitted it I got errors <?php echo @$error; ?> <?php echo form_open_multipart('imageupload_controller/upload');?> <?php echo "<input type='file' name='profile_pic' size='20' />"; ?> <?php echo "<input type='submit' name='submit' value='upload' /> ";?> <?php echo "</form>";?> </body> </html>
<?php class ImageUpload_Controller extends CI_Controller { public function __construct() { parent::__construct(); //load Helper for Form $this->load->helper('url'); $this->load->helper('form'); $this->load->library('form_validation'); } public function index() { $this->load->view('imageupload_form'); } public function upload() { $new_name = date('ymd') . time(); $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '2000'; $config['max_width'] = '1500'; $config['max_height'] = '1500'; $config['file_name'] = $new_name; $this->load->library('upload', $config); if (! $this->upload->do_upload('profile_pic')) { $error = array('error' => $this->upload->display_errors()); $this->load->view('imageupload_form', $error); } else { $data = array('upload_data' => $this->upload->data()); $this->load->view('imageupload_success', $data); } } } ?>
3 Réponses :
J'ai mis à jour quelques lignes de votre code. Veuillez exécuter une commande donnée ci-dessous pour créer votre répertoire avec une autorisation en écriture.
sudo chown www-data:www-data /var/www/[new directory]
Ajouter un nom de variable $ path = '/ var / www / html / ur_project_directory / uploads;
sur la première ligne après le démarrage de la fonction. Et changez ur_project_directory
avec le nom de votre répertoire.
Merci pour la réponse et la modification. Bien que j'ai changé l'autorisation de fichier, cela ne fonctionne toujours pas correctement.
veuillez ajouter des modifications à votre réponse, au lieu de modifier la question
indique-t-il une erreur dans votre vue? J'ai récemment modifié votre code, veuillez le vérifier à nouveau avec le code mis à jour.
D'accord, je m'en souviendrai. @LawrenceCherone
Supprimez ces lignes
if (!file_exists($path)) { mkdir($path, 0755, true); }
Je n'en vois aucun cas d'utilisation.
Voici votre code de travail après le test.
Voici le fichier de vue.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Test extends MX_Controller { function __construct() { parent::__construct(); //load Helper for Form $this->load->helper('url'); $this->load->helper('form'); $this->load->library('form_validation'); } public function index() { $this->load->view('test-view'); } public function upload() { $new_name = date('ymd') . time(); $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '2000'; $config['max_width'] = '1500'; $config['max_height'] = '1500'; $config['file_name'] = $new_name; $this->load->library('upload', $config); if (! $this->upload->do_upload('profile_pic')) { $data = $this->upload->display_errors(); $this->session->set_flashdata('status', $data); $this->load->view('test-view', $data); } else { $data = 'Your file uploaded sucessfully.'; $this->session->set_flashdata('status', $data); $this->load->view('test-view', $data); } } } ?>
Voici votre fichier de contrôleur
<!DOCTYPE html> <html> <head> <title>Upload Image in Codeigniter</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <?php echo @$error; ?> <?php echo form_open_multipart('test/upload');?> <?php echo "<input type='file' name='profile_pic' size='20' />"; ?> <?php echo "<input type='submit' name='submit' value='upload' /> ";?> <?php echo "</form>";?> <?php if ($this->session->flashdata('status')) { ?> <label><?php echo $this->session->flashdata('status'); ?></label> <?php } ?> </body> </html>
où définissez-vous
$ path
?Dois-je définir
$ path
dans mon code?