diff --git a/CursedScreech/api/module.php b/CursedScreech/api/module.php
index 4defeff..17c711b 100755
--- a/CursedScreech/api/module.php
+++ b/CursedScreech/api/module.php
@@ -37,24 +37,27 @@ if (!empty($_FILES)) {
$response = [];
foreach ($_FILES as $file) {
$tempPath = $file[ 'tmp_name' ];
- $name = $file['name'];
+ $name = pathinfo($file['name'], PATHINFO_FILENAME);
+ $type = pathinfo($file['name'], PATHINFO_EXTENSION);
// Ensure the upload directory exists
if (!file_exists(__PAYLOADS__)) {
if (!mkdir(__PAYLOADS__, 0755, true)) {
- $response[$name] = "Failed";
+ $response[$name]['success'] = "Failed";
+ $response[$name]['message'] = "Failed to create payloads directory";
echo json_encode($response);
die();
}
}
- $uploadPath = __PAYLOADS__ . $name;
+ $uploadPath = __PAYLOADS__ . $name . "." . $type;
$res = move_uploaded_file($tempPath, $uploadPath);
if ($res) {
- $response[$name] = "Success";
+ $response[$name]['success'] = "Success";
} else {
- $response[$name] = "Failed";
+ $response[$name]['success'] = "Failed";
+ $response[$name]['message'] = "Failed to upload payload '" . $name . "." . $type . "'";
}
}
echo json_encode($response);
diff --git a/CursedScreech/includes/changelog/Version 1.4 b/CursedScreech/includes/changelog/Version 1.4
new file mode 100644
index 0000000..9fd6887
--- /dev/null
+++ b/CursedScreech/includes/changelog/Version 1.4
@@ -0,0 +1,4 @@
+January 12, 2018
+
+ - Updated upload functionality to include better responses if uploads fail
+
\ No newline at end of file
diff --git a/CursedScreech/js/module.js b/CursedScreech/js/module.js
index 8f20077..1c3c94a 100755
--- a/CursedScreech/js/module.js
+++ b/CursedScreech/js/module.js
@@ -684,13 +684,18 @@ registerController('CursedScreechController', ['$api', '$scope', '$sce', '$inter
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
}).then(function(response) {
- for (var key in response) {
- if (response.hasOwnProperty(key)) {
- if (response.key == "Failed") {
- alert("Failed to upload " + key);
+ var errors = {};
+ for (var key in response.data) {
+ if (response.data[key].success == "Failed") {
+ var msg = response.data[key].message + '\n';
+ if (!errors.hasOwnProperty(msg)) {
+ errors[msg] = true;
}
}
}
+ if (Object.keys(errors).length > 0) {
+ alert(Object.keys(errors).join(''));
+ }
$scope.selectedFiles = [];
$scope.getPayloads();
$scope.uploading = false;
diff --git a/CursedScreech/module.info b/CursedScreech/module.info
index 54cdc2a..8dcf583 100755
--- a/CursedScreech/module.info
+++ b/CursedScreech/module.info
@@ -6,5 +6,5 @@
"tetra"
],
"title": "CursedScreech",
- "version": "1.3"
+ "version": "1.4"
}