summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/JpegMeta.php2
-rw-r--r--inc/io.php18
2 files changed, 19 insertions, 1 deletions
diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php
index af7d27f96..eb9ab8627 100644
--- a/inc/JpegMeta.php
+++ b/inc/JpegMeta.php
@@ -841,7 +841,7 @@ class JpegMeta
$tmpName = tempnam(dirname($this->_fileName),'_metatemp_');
$this->_writeJPEG($tmpName);
if (@file_exists($tmpName)) {
- return rename($tmpName, $this->_fileName);
+ return io_rename($tmpName, $this->_fileName);
}
} else {
return $this->_writeJPEG($fileName);
diff --git a/inc/io.php b/inc/io.php
index ff318bd67..9c02e87c6 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -319,6 +319,24 @@ function io_download($url,$file,$useAttachment=false,$defaultName=''){
}
/**
+ * Windows copatible rename
+ *
+ * rename() can not overwrite existing files on Windows
+ * this function will use copy/unlink instead
+ */
+function io_rename($from,$to){
+ if(!@rename($from,$to)){
+ if(@copy($from,$to)){
+ @unlink($from);
+ return true;
+ }
+ return false;
+ }
+ return true;
+}
+
+
+/**
* Runs an external command and returns it's output as string
*
* @author Harry Brueckner <harry_b@eml.cc>