2008-11-13 7 views
7

J'essaie de télécharger une image sur mon site via un formulaire, mais il est beaucoup plus efficace (plutôt que de ralentir la base de données) stocker l'emplacement de l'image dans la base de données.CodeIgniter - Télécharger une image à travers un formulaire, stocker l'emplacement de l'image dans la base de données

Je vais avoir des problèmes avec ma forme et ne sais vraiment pas où aller:

<?=form_open('bro/submit_new');?> 
//other form data 
Image: <input type="file" name="image" size="20" /> <br> 
<input type="submit" value="Submit" /> 
</form> 

fonctionne maintenant sous la forme elle-même très bien, le problème est qu'il essaie de stocker l'image dans le champ de base de données 'image' (qui est le type TEXT). Quel est le moyen le plus simple de lui dire de simplement stocker le fichier, et de donner l'emplacement du fichier à stocker dans le champ 'image'? (Je lui dis où télécharger le fichier via le contrôleur).

Merci

Edit: code de commande (pour cette partie):

function submit_new(){ 
    $config['upload_path'] = './images/'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = '2000'; 
    $config['max_width'] = '1024'; 
    $config['max_height'] = '768';  
    $this->load->library('upload', $config); 

    $this->db->insert('post', $_POST); 

    redirect('bro'); 
} 

Répondre

8

classe téléchargement de fichiers de CodeIgniter fera pour vous. Le entry in their user guide explique aussi bien que je pourrais, donc je vais vous y indiquer. Essentiellement, il vous suffit de modifier le contrôleur qu'ils ont pour inclure un bit où vous placez l'URL du fichier dans la base de données, ce que vous pouvez faire facilement en utilisant $ this-> upload-> data() et extraire [chemin_complet] du tableau résultant, puis l'envoyer à un modèle qui gère l'entrée de la base de données.

+0

j'avais l'impression qu'il a chargé le fichier directement dans la base de données? Est-ce que j'ai tort? – scrot

+0

Mais je suppose que je ne pensais pas à la raison pour laquelle il serait charger aux deux endroits – scrot

+2

Et maintenant je me sens comme un idiot. – scrot

9

utilisation form_open_multipart() non Form_Open()

-1

utiliser les pages de modèle pour télécharger des données à base de données

Questions connexes