Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 885e7d76

Von Holger Lindemann vor fast 15 Jahren hinzugefügt

  • ID 885e7d7601de767605f2938a69bae18258c62696
  • Nachfolger 74f7cca4

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.

Unterschiede anzeigen:

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 &uuml;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 &nbsp; 
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&uuml;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