Revision 885e7d76
Von Holger Lindemann vor fast 15 Jahren hinzugefügt
- ID 885e7d7601de767605f2938a69bae18258c62696
- Nachfolger 74f7cca4
lxo-import/partsB.php | ||
---|---|---|
27 | 27 |
/* get DB instance */ |
28 | 28 |
$db=$_SESSION["db"]; //new myDB($login); |
29 | 29 |
|
30 |
|
|
31 | 30 |
/* just display page or do real import? */ |
32 | 31 |
if ($_POST["ok"]) { |
33 | 32 |
|
34 | 33 |
require ("parts_import.php"); |
34 |
//Zeichencodierung des Servers |
|
35 |
$tmpcode = $db->getServerCode(); |
|
36 |
//Leider sind die Benennungen vom Server anders als von mb_detect_encoding |
|
37 |
if ($tmpcode == "UTF8") { |
|
38 |
define("ServerCode","UTF-8"); |
|
39 |
} else if ($tmpcode == "LATIN9") { |
|
40 |
define("ServerCode","ISO-8859-15"); |
|
41 |
} else if ($tmpcode == "LATIN1") { |
|
42 |
define("ServerCode","ISO-8859-1"); |
|
43 |
} else { |
|
44 |
define("ServerCode",$tmpcode); |
|
45 |
} |
|
46 |
//Zeichensatz sollte gleich sein, sonst ist die Datenkonvertierung nutzlos |
|
47 |
//DB und LxO müssen ja nicht auf der gleichen Maschiene sein. |
|
48 |
if($tmpcode<>$db->getClientCode()) { |
|
49 |
$rc = $db->setClientCode($tmpcode); |
|
50 |
} |
|
51 |
|
|
52 |
// Zeichenkodierung File |
|
53 |
if ($_POST["encoding"] == "auto") { |
|
54 |
define("Auto",true); |
|
55 |
define("Translate",true); |
|
56 |
} else { |
|
57 |
define("Auto",false); |
|
58 |
if ($_POST["encoding"] == ServerCode) { |
|
59 |
define("Translate",false); |
|
60 |
} else { |
|
61 |
define("Translate",true); |
|
62 |
define("FileCode",$_POST["encoding"]); |
|
63 |
} |
|
64 |
} |
|
35 | 65 |
|
36 | 66 |
/* display help */ |
37 | 67 |
if ($_POST["ok"]=="Hilfe") { |
... | ... | |
66 | 96 |
$precision = $_POST["precision"]; |
67 | 97 |
$quotation = $_POST["quotation"]; |
68 | 98 |
$quottype = $_POST["quottype"]; |
69 |
$file = "../users/parts.csv"; |
|
70 |
$table = "parts"; |
|
99 |
$file = "parts"; |
|
71 | 100 |
|
72 | 101 |
/* no data? */ |
73 | 102 |
if (empty($_FILES["Datei"]["name"])) |
74 | 103 |
ende ("Kein Datenfile angegeben"); |
75 | 104 |
|
76 | 105 |
/* copy file */ |
77 |
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file)) { |
|
106 |
$dir="../users/"; |
|
107 |
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file.".csv")) { |
|
78 | 108 |
ende ("Upload von Datei fehlerhaft.".$_FILES["Datei"]["error"]); |
79 | 109 |
} |
80 | 110 |
|
81 | 111 |
/* check if file is really there */ |
82 |
if (!file_exists("$file") or filesize("$file")==0)
|
|
83 |
ende("Datenfile ($file) nicht im Ordner gefunden oder leer"); |
|
112 |
if (!file_exists($dir.$file.'.csv') or filesize($dir.$file.'.csv')==0)
|
|
113 |
ende("Datenfile ($file.csv) nicht im Ordner gefunden oder leer");
|
|
84 | 114 |
|
85 | 115 |
/* Zu diesem Zeitpunkt wurde der Artikel Importiert */ |
86 |
if (!$db->chkcol($table))
|
|
116 |
if (!$db->chkcol($file))
|
|
87 | 117 |
ende("Importspalte konnte nicht angelegt werden"); |
88 | 118 |
|
89 | 119 |
/* first check all elements */ |
... | ... | |
94 | 124 |
$_test["lagerplatz"]=$_POST["lagerplatz"]; |
95 | 125 |
|
96 | 126 |
/* just print data or insert it, if test is false */ |
97 |
import_parts($db, $file, $trenner, $trennzeichen, $parts, FALSE, !$test, $_POST["show"],$_POST); |
|
127 |
import_parts($db, $dir.$file, $trenner, $trennzeichen, $parts, FALSE, !$test, $_POST["show"],$_POST);
|
|
98 | 128 |
|
99 | 129 |
} else { |
100 | 130 |
$bugrus=getAllBG($db); |
... | ... | |
131 | 161 |
<tr><td>Test</td><td><input type="checkbox" name="test" value="1">ja</td></tr> |
132 | 162 |
<tr><td>Textupdate</td><td><input type="checkbox" name="TextUpd" value="1">ja</td></tr> |
133 | 163 |
<tr><td>Warengruppen<br>verbinder</td><td><input type="text" name="wgtrenner" value="!" size="3"></td></tr> |
134 |
<tr><td>Shopartikel,<br>falls Feld leer</td><td><input type="radio" name="shop" value="t">ja <input type="radio" name="shop" value="f" checked>nein</td></tr>
|
|
164 |
<tr><td>Shopartikel<br />falls nicht übergeben</td><td><input type="radio" name="shop" value="t">ja <input type="radio" name="shop" value="f" checked>nein</td></tr>
|
|
135 | 165 |
<tr><td>Art</td><td><input type="Radio" name="ware" value="W" checked>Ware |
136 | 166 |
<input type="Radio" name="ware" value="D">Dienstleistung |
137 | 167 |
<input type="Radio" name="ware" value="G">gemischt (Spalte 'art' vorhanden)</td></tr> |
... | ... | |
145 | 175 |
<input type="radio" name="bugrufix" value="2">für Artikel ohne passende Bugru |
146 | 176 |
</td></tr> |
147 | 177 |
<tr><td>Daten</td><td><input type="file" name="Datei"></td></tr> |
178 |
<tr><td>Verwendete<br />Zeichecodierung</td><td> |
|
179 |
<select name="encoding"> |
|
180 |
<option value="auto">Automatisch (versuchen)</option> |
|
181 |
<option value="UTF-8">UTF-8</option> |
|
182 |
<option value="ISO-8859-1">ISO-8859-1</option> |
|
183 |
<option value="ISO-8859-15">ISO-8859-15</option> |
|
184 |
<option value="Windows-1252">Windows-1252</option> |
|
185 |
<option value="ASCII">ASCII</option> |
|
186 |
</select> |
|
187 |
</td></tr> |
|
148 | 188 |
<tr><td></td><td><input type="submit" name="ok" value="Import"></td></tr> |
149 | 189 |
</table> |
150 | 190 |
</form> |
Auch abrufbar als: Unified diff
Uploadverzeichnis in users (Bug 1343)
Abfrage Server-Zeichencode (Bug 1350)
Trennzeichen in allen File wählbar
Zeichenkonvertierung: (Bug 1036)
Da Web und DB Server nicht auf dem gleichen Server laufen müssen,
muß der Client (php) auf den Server eingestellt werden.
Bei der Datenkonvertierung einen Zeichencode mitgeben oder auf Auto stellen
mb_detect_encoding arbeitet nicht zuverlässig!!! Liefert häufig den ersten zu testenden Code zurück.