contao/import — Issue #3390: FileCache.php Windows PHP rename
Author: importer
Created: 2011-11-29 21:27:52+00:00
State: open
Labels: Feature, frontend

Die tmp Dateien können bei Windows nicht mit dem rename Befehl überschrieben werden solange noch Zugriff auf die Datei herrscht. Die Zeile:
rename($strPath . '/' . $strTemp, $strPath . '/' . $this->strFile);

Führt zu dem Fehler:

```
Warning: rename(C: ..... )[function.rename]: File exists in C:\....
#0 [internal function]: __error(2, 'rename(C:\Inetp...', 'C:\Inetpub\vhos...', 118, Array)
#1 C:\Inetpub\...\httpdocs\system\libraries\FileCache.php(11 8): rename('C:\Inetpub\...', 'C:\Inetpub\...')
#2 [internal function]: FileCache->__destruct()
#3 {main}
```

Ein dirty Trick ist die rename Funktion für Windows zu bearbeiten (FileCache.php):

```
function rename_win($oldfile,$newfile) {
if (!rename($oldfile,$newfile)) {
if (copy ($oldfile,$newfile)) {
unlink($oldfile);
return TRUE;
}
return FALSE;
}
return TRUE;
}

public function __destruct()
.....

rename_win($strPath . '/' . $strTemp, $strPath . '/' . $this->strFile);
```

Related issues: #3593

--- _Originally created by enabled on August 19th, 2011, at 08:58am (ID 3390)_