summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bratch <luke@bratch.co.uk>2015-12-12 15:06:57 +0000
committerLuke Bratch <luke@bratch.co.uk>2015-12-12 15:06:57 +0000
commitf9c44edcef62e0987109d0bb3922e819d346d86f (patch)
tree96f72f100899d66e68a13432f65969df10489c7c
parent2dafdedfe29aee7ed19d141bbe0953e94b4a499b (diff)
parent615164ec271a64dbd3007270470fb32880191b0e (diff)
Merge branch 'blaears_post' into 'master'
Send a POST to blaears when a file is uploaded Blaears now listens on /blaupload for POSTs containing 'url' and 'channel', and will post those URLs to that channel. I've added a config value $posturl for the URL to post to - if this is not set then nothing will be done. If it is set, then it will send a POST containing the uploaded file URL and the channel set in $postchannel in the config. I'm not sure on best practice for global variables in PHP. I passed them in as function arguments, but we could also use 'global $posturl, $postchannel' instead. See merge request !2
-rw-r--r--.gitignore1
-rw-r--r--config.php.example6
-rwxr-xr-x[-rw-r--r--]upload_file.php18
3 files changed, 25 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4f4773f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+config.php
diff --git a/config.php.example b/config.php.example
index e45ff35..b31e440 100644
--- a/config.php.example
+++ b/config.php.example
@@ -18,4 +18,10 @@
# An array of filenames to omit from the index
$indexignore = array(".htaccess", "config.php", "index.php", "upload_file.php", "upload.html");
+
+ # An URL to send a POST to when an upload is successful
+ $posturl = "http://url.to/post/to";
+
+ #The IRC channel notified by uploads when using the notification URL
+ $postchannel = "ircchannel";
?>
diff --git a/upload_file.php b/upload_file.php
index 890078a..f1ed597 100644..100755
--- a/upload_file.php
+++ b/upload_file.php
@@ -51,8 +51,26 @@ if ($_FILES["file"]["error"] > 0) {
$fileurl = "$url" . $_FILES["file"]["name"];
echo "URL: <a href=\"$fileurl\">$fileurl</a><br>";
echo "Size: " . size_readable($_FILES["file"]["size"], null, "bi");
+ if (isset($posturl)) {
+ send_upload_notification($fileurl, $posturl, $postchannel);
+ }
}
}
+
+function send_upload_notification($fileurl, $posturl, $channel) {
+ $data = array('url' => $fileurl, 'channel' => $channel);
+
+ $options = array(
+ 'http' => array(
+ 'header' => "Content-type: application/x-www-form-urlencoded\r\n" .
+ "X-Blaears-Event: blaupload\r\n",
+ 'method' => 'POST',
+ 'content' => http_build_query($data),
+ ),
+ );
+ $context = stream_context_create($options);
+ file_get_contents($posturl, false, $context);
+}
?>
</p>
<p>