Bonjour,
Je réalise un formulaire CSV en deux étapes.
Etape 1:
- Je charge le fichier CSV avec un input de type 'file'.
- J'effectue les contrôles sur le fichier.
Etape 2
Cette étape 2 sert à établir la correspondance entre les colonnes sources et les colonnes cibles.
Mon problème: Lorsque je passe à l'étape 2, les données du fichier ne sont plus disponibles et j'ai une erreurJ'ai essayé de mettre le $_FILES['fichier'] en $_SESSION mais sans succès.fopen(C:\wamp64\tmp\php54F9.tmp): failed to open stream
Voici la partie concernée de mon code:EDIT: J'ai aussi essayé ceci: $_SESSION['importFile']['temp'] = file_get_contents($_FILES['importFile']['tmp_name']); mais je ne suis pas sûr de la suite si le fichier est trop long. D'autre part, str_getcsv me retourne en bloc toute la chaîne sans tenir compte des différentes lignes ("\r\n").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 // Prepare form 2 if($_SESSION['tab'] ==2){ // extract column names $fileName = $_SESSION['importFile']['tmp_name']; if($_SESSION['importFile']['size'] >0){ $in = fopen($fileName, "r"); $aColSources = fgetcsv($in)[0]; } var_dump($aColSources); // encoding $code = mb_detect_encoding($aColSources); if(mb_detect_encoding($aColSources) != $code) mb_convert_encoding($aColSources,"UTF-8",$code); // Create column list $delimiter = getFileDelimiter($fileName, 3); //Check 3 lines to determine the delimiter $pattern = "<label><span>%s</span>%s</label>"; $aLines = []; $aTargets[0] = getColumns('dat_customers'); $aTargets[1] = getColumns('dat_infos'); $aTargets[2] = getColumns('dat_employees'); } if(!empty($post['goOn'])){ unset($post['goOn']); if($_SESSION['tab'] == 1){ $_SESSION['importFile'] = []; if(!empty($_FILES['importFile']) and $_FILES['importFile']['error'] != 4 and !empty($_FILES['importFile']['name'])){ $_SESSION['importFile'] = $_FILES['importFile']; // VOIR UTILITE // AJOUTER ICI CONTROLES SUR LE FICHIER $_SESSION['tab']++; header('Location: main.php?page=10'); exit; } } }
Partager