diff options
author | Florian Pritz <bluewind@xinu.at> | 2012-01-25 12:47:58 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2012-01-25 12:47:58 +0100 |
commit | b433bcc5da665c171b2ac293892d3d19eef80e2f (patch) | |
tree | 0e8dc774c94c89b3dbec0d2024ce5f965d52f6e1 | |
parent | cbd6a01c195c3f4ca69a1c25d4b781b537983faf (diff) |
allow client to overwrite filename
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r-- | application/controllers/file.php | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/application/controllers/file.php b/application/controllers/file.php index 0c2db3e0c..4bb336ad0 100644 --- a/application/controllers/file.php +++ b/application/controllers/file.php @@ -233,7 +233,18 @@ class File extends CI_Controller { $id = $this->file_mod->new_id(); $hash = md5_file($_FILES['file']['tmp_name']); - $filename = $_FILES['file']['name']; + + // work around a curl bug and allow the client to send the real filename base64 encoded + $filename = $this->input->post("filename"); + if ($filename !== false) { + $filename = base64_decode($filename, true); + } + + // fall back if base64_decode failed + if ($filename === false) { + $filename = $_FILES['file']['name']; + } + $folder = $this->file_mod->folder($hash); file_exists($folder) || mkdir ($folder); $file = $this->file_mod->file($hash); |