2012-07-21 5 views
1

Je ne suis pas sûr de ce que je fais mal ici.Télécharger le fichier Codeigniter et ajax

contrôleur

function do_test() 
{ 
    $config['upload_path'] = './images'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = '10000'; 
    $config['max_width'] = '1024'; 
    $config['max_height'] = '768'; 
    $config['overwrite'] = TRUE; 
    $confit['remove_spaces'] = TRUE; 

    $this->load->library('upload', $config); 
    $this->load->library('form_validation'); 

    $this->form_validation->set_rules('file', 'trim|required|xss_clean'); 
    $test = $this->input->post('file'); 
    var_dump($test); //var dump return : string(21) "C:\fakepath\truth.jpg" 

    if (! $this->upload->do_upload($test)) 
    { 
     echo "no"; 
    } 
    else 
    { 
     $data = array('upload_data' => $this->upload->data()); 

     echo "yes"; 
    } 
} 

forme

<?php echo form_open_multipart('home/do_test', array('id' => 'skill-form-test'));?> 

    <input type="file" name="userfile" id="file" size="20" /> 

    <br /><br /> 

    <input type="submit" value="upload" /> 

    </form> 

jquery

$('#skill-form-test').submit(function(e) { 
    e.preventDefault(); 

    $.post(base_url + "index.php/home/do_test", { file : $("#file").val() }, function(data) 
     { 
      }, "json"); 
    alert ($("#file").val() + "-" + base_url); //This alerts: C:\fakepath\truth.jpg-http://siteurl.com/ 
}); 
+1

Je ne suis pas sûr de ce que vous demandez ici. En termes simples, quelle est la question? – itachi

+0

Pourquoi le fichier image ne se télécharge-t-il pas? – Ciprian

+0

@ciprian Pourquoi utiliser le type de données 'json' pour télécharger des images? – undefined

Répondre

0

Il suffit de changer

if (! $this->upload->do_upload($test)) 

à

if (! $this->upload->do_upload('userfile')) 

va résoudre le problème.

J'espère que cela vous aide. Je vous remercie!!

+1

Essayé ... ne fonctionne pas. – Ciprian

+0

@ciprian, Jusqu'à ce que vous utilisiez 'flash/swfplugin' ou' iframe', le téléchargement Ajax n'est pas possible. J'écris le téléchargement de fichier ajax personnalisé et a répondu ici http://stackoverflow.com/questions/11556199/ajax-file-upload-using-codeigniter/11557399#11557399 vous pouvez regarder en elle. –