Voglio pubblicare file csv sul mio controller usando API. Sto usando la libreria REST Codeigniter di phil sturgeon. Come implementare sul lato client l'importazione di CSV sul mio server REST. Voglio solo chiedere perché non riesco a trovare alcuna documentazione a riguardo.Codeigniter REST CSV import a mysql
risposta
Ecco un modo semplice per farlo. Non so cosa facciano le persone ma io uso questo
Questa è la mia libreria di lettori csv, salvala nella cartella delle librerie come csvreader.php.
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class CSVReader {
var $fields; /** columns names retrieved after parsing */
var $separator = ';'; /** separator used to explode each line */
var $enclosure = '"'; /** enclosure used to decorate each field */
var $max_row_size = 4096; /** maximum row size to be used for decoding */
function parse_file($p_Filepath)
{
$file = fopen($p_Filepath, 'r');
$this->fields = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure);
$keys_values = explode(',',$this->fields[0]);
$content = array();
$keys = $this->escape_string($keys_values);
$i = 1;
while(($row = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure)) != false)
{
if($row != null) { // skip empty lines
$values = explode(',',$row[0]);
if(count($keys) == count($values)){
$arr = array();
$new_values = array();
$new_values = $this->escape_string($values);
for($j=0;$j<count($keys);$j++){
if($keys[$j] != ""){
$arr[$keys[$j]] = $new_values[$j];
}
}
$content[$i] = $arr;
$i++;
}
}
}
fclose($file);
return $content;
}
function escape_string($data)
{
$result = array();
foreach($data as $row){
$result[] = str_replace('"', '',$row);
}
return $result;
}
}
?>
e il metodo
function readExcel()
{
$this->load->library('csvreader');
$result = $this->csvreader->parse_file('Test.csv');//path to csv file
$data['csvData'] = $result;
$this->load->view('view_csv', $data);
}
controller e questo è vista
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width = "10%">ID</td>
<td width = "20%">NAME</td>
<td width = "20%">SHORT DESCRIPTION</td>
<td width = "30%">LONG DESCRIPTION</td>
<td width = "10%">STATUS</td>
<td width = "10%">PARENTID</td>
</tr>
<?php foreach($csvData as $field){?>
<tr>
<td><?php echo $field['id']?></td>
<td><?php echo $field['name']?></td>
<td><?php echo $field['shortdesc']?></td>
<td><?php echo $field['longdesc']?></td>
<td><?php echo $field['status']?></td>
<td><?php echo $field['parentid']?></td>
</tr>
<?php }?>
</table>
Nota: Questo sarà solo leggere un file che esiste sul server. Se è necessario caricare il file, utilizzare File Upload Class per caricare il file e salvarlo in una posizione del server, quindi indicare il percorso del file localizzato nel metodo parse_file
. E tutto funzionerà bene.
Grazie ci proverò ho solo bisogno dei dati per estrarlo e passarlo al modello. –
è possibile passare l'array restituito al modello –
come se i miei campi csv senza $ recinzione "" restituisca errore se inserisco $ enclosure = ''; –
- 1. Import-CSV e Foreach
- 2. JAVA - import CSV per ArrayList
- 3. Import CSV/JSON in giada
- 4. mysql import wizard table non riesce a importare un file csv
- 5. Autenticazione REST in PHP (CodeIgniter)
- 6. Codeigniter timezone impostazioni mysql
- 7. Caricamento di un csv in Codeigniter
- 8. Libreria di importazione CSV per CodeIgniter
- 9. Importazione csv PostgreSQL da esportazione csv MySQL?
- 10. Aggiornamento MySql Script su CodeIgniter
- 11. Pandas csv-import: mantenere gli zeri iniziali in una colonna
- 12. Import-Csv da una stringa anziché da un file?
- 13. Import/Export CSV dal SQLite da codice C#
- 14. MySQL importa dati CSV - ignora alcune colonne csv
- 15. Problema di interruzione di riga da CSV a MySQL
- 16. Quando utilizzare "import * as Foo" rispetto a "import Foo"?
- 17. Perché c'è una differenza in "import" rispetto a "import *"?
- 18. CodeIgniter/PHP/MySQL: recupero dati con JOIN
- 19. Codeigniter mysql dove non uguale alla query
- 20. Libreria API REST CodeIgniter Ajax PUT throwing 403 Forbidden
- 21. Importa CSV nella tabella temporanea in MySQL
- 22. Connessione a un database remoto tramite CodeIgniter
- 23. Ruby on Rails 4 - Import CSV - nessuna conversione implicita nella stringa
- 24. Come export csv da MySQL utf8
- 25. Caricamento di file CSV in MySQL Workbench
- 26. Esporre database/tabella MySQL utilizzando REST
- 27. filtro su django-import-export
- 28. C# Dizionario a .csv
- 29. MENO @import: passaggio dei percorsi a lessc
- 30. foreign import prim call a LLVM
Non sei abbastanza chiaro con la domanda. Codeigniter REST è quasi uguale al normale Codeigniter ma la differenza è solo chiamando il metodo e la risposta. Nel normale codeign chiamiamo 'controller/function' dove in REST deve essere' resource/{resource_id}/child_resource/{child_resource_id} '. Non c'è alcun problema per l'invio delle intestazioni come file '.xls' – KuKu
clealy e in parole semplici dicci cosa vuoi –
@raheelshan Voglio postare file csv sul mio controller usando l'API lato client di jquery.post ed estrarre i dati del file csv e importarli in mysql. –