]> git.wh0rd.org - tt-rss.git/commitdiff
import_export: better error message if upload failed
authorAndrew Dolgov <noreply@fakecake.org>
Fri, 19 Aug 2016 15:14:22 +0000 (18:14 +0300)
committerAndrew Dolgov <noreply@fakecake.org>
Fri, 19 Aug 2016 15:14:22 +0000 (18:14 +0300)
include/functions2.php
plugins/import_export/init.php

index dceea507ee882ccbc6f15935c1a959ad7795ad26..7e1171b7d218b112ebcf4baf5ef16c732ffee93f 100644 (file)
 
                return $tmp;
        }
+
+       function get_upload_error_message($code) {
+
+               $errors = array(
+                       0 => __('There is no error, the file uploaded with success'),
+                       1 => __('The uploaded file exceeds the upload_max_filesize directive in php.ini'),
+                       2 => __('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'),
+                       3 => __('The uploaded file was only partially uploaded'),
+                       4 => __('No file was uploaded'),
+                       6 => __('Missing a temporary folder'),
+                       7 => __('Failed to write file to disk.'),
+                       8 => __('A PHP extension stopped the file upload.'),
+               );
+
+               return $errors[$code];
+       }
 ?>
index 7c628909ff11de71df78981d4ec696df35495d73..491216e06c98b66dd4016934786d2b494106263d 100644 (file)
@@ -425,34 +425,35 @@ class Import_Export extends Plugin implements IHandler {
                print "<div style='text-align : center'>";
 
                if ($_FILES['export_file']['error'] != 0) {
-                       print_error(T_sprintf("Upload failed with error code %d",
-                               $_FILES['export_file']['error']));
-                       return;
-               }
+                       print_error(T_sprintf("Upload failed with error code %d (%s)",
+                               $_FILES['export_file']['error'],
+                               get_upload_error_message($_FILES['export_file']['error'])));
+               } else {
 
-               $tmp_file = false;
+                       $tmp_file = false;
 
-               if (is_uploaded_file($_FILES['export_file']['tmp_name'])) {
-                       $tmp_file = tempnam(CACHE_DIR . '/upload', 'export');
+                       if (is_uploaded_file($_FILES['export_file']['tmp_name'])) {
+                               $tmp_file = tempnam(CACHE_DIR . '/upload', 'export');
 
-                       $result = move_uploaded_file($_FILES['export_file']['tmp_name'],
-                               $tmp_file);
+                               $result = move_uploaded_file($_FILES['export_file']['tmp_name'],
+                                       $tmp_file);
 
-                       if (!$result) {
-                               print_error(__("Unable to move uploaded file."));
+                               if (!$result) {
+                                       print_error(__("Unable to move uploaded file."));
+                                       return;
+                               }
+                       } else {
+                               print_error(__('Error: please upload OPML file.'));
                                return;
                        }
-               } else {
-                       print_error(__('Error: please upload OPML file.'));
-                       return;
-               }
 
-               if (is_file($tmp_file)) {
-                       $this->perform_data_import($tmp_file, $_SESSION['uid']);
-                       unlink($tmp_file);
-               } else {
-                       print_error(__('No file uploaded.'));
-                       return;
+                       if (is_file($tmp_file)) {
+                               $this->perform_data_import($tmp_file, $_SESSION['uid']);
+                               unlink($tmp_file);
+                       } else {
+                               print_error(__('No file uploaded.'));
+                               return;
+                       }
                }
 
                print "<button dojoType=\"dijit.form.Button\"