summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-04-11 19:12:00 +0400
committerAndrew Dolgov <[email protected]>2013-04-11 19:12:00 +0400
commit3306daecf4450555961490c11e70e7cf7fe7b86e (patch)
tree98e1162f201f0f0672e14bd12c76677e4d24337e /plugins
parent063ac6135304223d6667401936e3a3931522b07c (diff)
implement upload-related support for open_basedir
Diffstat (limited to 'plugins')
-rw-r--r--plugins/googlereaderimport/init.php28
1 files changed, 26 insertions, 2 deletions
diff --git a/plugins/googlereaderimport/init.php b/plugins/googlereaderimport/init.php
index ac7a872f2..f7d876b90 100644
--- a/plugins/googlereaderimport/init.php
+++ b/plugins/googlereaderimport/init.php
@@ -66,8 +66,32 @@ class GoogleReaderImport extends Plugin {
$owner_uid = $_SESSION["uid"];
- if (is_file($_FILES['starred_file']['tmp_name'])) {
- $doc = json_decode(file_get_contents($_FILES['starred_file']['tmp_name']), true);
+ if ($_FILES['starred_file']['error'] != 0) {
+ print_error(T_sprintf("Upload failed with error code %d",
+ $_FILES['starred_file']['error']));
+ return;
+ }
+
+ $tmp_file = false;
+
+ if (is_uploaded_file($_FILES['starred_file']['tmp_name'])) {
+ $tmp_file = tempnam(CACHE_DIR . '/upload', 'starred');
+
+ $result = move_uploaded_file($_FILES['starred_file']['tmp_name'],
+ $tmp_file);
+
+ if (!$result) {
+ print_error(__("Unable to move uploaded file."));
+ return;
+ }
+ } else {
+ print_error(__('Error: please upload OPML file.'));
+ return;
+ }
+
+ if (is_file($tmp_file)) {
+ $doc = json_decode(file_get_contents($tmp_file), true);
+ unlink($tmp_file);
} else {
print_error(__('No file uploaded.'));
return;