import_export: better error message if upload failed

This commit is contained in:
Andrew Dolgov 2016-08-19 18:14:22 +03:00
parent a84fb943b4
commit 1a322ff3df
2 changed files with 38 additions and 21 deletions

View File

@ -2449,4 +2449,20 @@
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];
}
?>

View 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\"