X-Git-Url: https://git.p6c8.net/jirafeau.git/blobdiff_plain/11233d68c69637b4c3eee55ffae78033c5dae1a9..70d841a8fc4727b02da6adde3ad12326430d87a8:/script.php
diff --git a/script.php b/script.php
index 33b8edf..aa04a6f 100644
--- a/script.php
+++ b/script.php
@@ -22,16 +22,14 @@
* If you don't want this feature, you can simply delete this file from your
* web directory.
*/
+define('JIRAFEAU_ROOT', dirname(__FILE__) . '/');
-define ('JIRAFEAU_ROOT', dirname (__FILE__) . '/');
-
-require (JIRAFEAU_ROOT . 'lib/config.original.php');
-require (JIRAFEAU_ROOT . 'lib/settings.php');
-require (JIRAFEAU_ROOT . 'lib/functions.php');
-require (JIRAFEAU_ROOT . 'lib/lang.php');
+require(JIRAFEAU_ROOT . 'lib/settings.php');
+require(JIRAFEAU_ROOT . 'lib/functions.php');
+require(JIRAFEAU_ROOT . 'lib/lang.php');
global $script_langages;
- $script_langages = array ('bash' => 'Bash');
+ $script_langages = array('bash' => 'Bash');
/* Operations may take a long time.
* Be sure PHP's safe mode is off.
@@ -40,70 +38,60 @@ require (JIRAFEAU_ROOT . 'lib/lang.php');
/* Remove errors. */
@error_reporting(0);
-if ($_SERVER['REQUEST_METHOD'] == "GET" && count ($_GET) == 0)
-{
- require (JIRAFEAU_ROOT . 'lib/template/header.php');
- check_errors ($cfg);
- if (has_error ())
- {
- show_errors ();
- require (JIRAFEAU_ROOT . 'lib/template/footer.php');
+if ($_SERVER['REQUEST_METHOD'] == "GET" && count($_GET) == 0) {
+ require(JIRAFEAU_ROOT . 'lib/template/header.php');
+ check_errors($cfg);
+ if (has_error()) {
+ show_errors();
+ require(JIRAFEAU_ROOT . 'lib/template/footer.php');
exit;
- }
- ?>
+ } ?>
Scripting interface
This interface permits to script your uploads and downloads.
See source code of this interface to get available calls :)
-
Alternatively, go to this page to download a bash script.
+
You may download a preconfigured Bash Script to easily send to and get files from the API via command line.
0 &&
- $_FILES['file']['size'] > $cfg['maximal_upload_size'] * 1024 * 1024)
- {
+ $_FILES['file']['size'] > $cfg['maximal_upload_size'] * 1024 * 1024) {
echo 'Error 5: Your file exceeds the maximum authorized file size.';
exit;
}
- $res = jirafeau_upload ($_FILES['file'],
- isset ($_POST['one_time_download']),
+ $res = jirafeau_upload($_FILES['file'],
+ isset($_POST['one_time_download']),
$key, $time, get_ip_address($cfg),
$cfg['enable_crypt'], $cfg['link_name_length']);
- if (empty($res) || $res['error']['has_error'])
- {
+ if (empty($res) || $res['error']['has_error']) {
echo 'Error 6 ' . $res['error']['why'];
exit;
}
@@ -156,98 +143,82 @@ if (isset ($_FILES['file']) && is_writable (VAR_FILES)
/* Print decrypt key. */
echo NL;
echo urlencode($res['crypt_key']);
-}
-elseif (isset ($_GET['h']))
-{
+} elseif (isset($_GET['h'])) {
$link_name = $_GET['h'];
$key = '';
- if (isset ($_POST['key']))
+ if (isset($_POST['key'])) {
$key = $_POST['key'];
+ }
$d = '';
- if (isset ($_GET['d']))
+ if (isset($_GET['d'])) {
$d = $_GET['d'];
+ }
- if (!preg_match ('/[0-9a-zA-Z_-]+$/', $link_name))
- {
+ if (!preg_match('/[0-9a-zA-Z_-]+$/', $link_name)) {
echo 'Error 7';
exit;
}
- $link = jirafeau_get_link ($link_name);
- if (count ($link) == 0)
- {
+ $link = jirafeau_get_link($link_name);
+ if (count($link) == 0) {
echo 'Error 8';
exit;
}
- if (strlen ($d) > 0 && $d == $link['link_code'])
- {
- jirafeau_delete_link ($link_name);
+ if (strlen($d) > 0 && $d == $link['link_code']) {
+ jirafeau_delete_link($link_name);
echo "Ok";
exit;
}
- if ($link['time'] != JIRAFEAU_INFINITY && time () > $link['time'])
- {
- jirafeau_delete_link ($link_name);
+ if ($link['time'] != JIRAFEAU_INFINITY && time() > $link['time']) {
+ jirafeau_delete_link($link_name);
echo 'Error 9';
exit;
}
- if (strlen ($link['key']) > 0 && md5 ($key) != $link['key'])
- {
- sleep (2);
+ if (strlen($link['key']) > 0 && md5($key) != $link['key']) {
+ sleep(2);
echo 'Error 10';
exit;
}
- $p = s2p ($link['md5']);
- if (!file_exists (VAR_FILES . $p . $link['md5']))
- {
+ $p = s2p($link['md5']);
+ if (!file_exists(VAR_FILES . $p . $link['md5'])) {
echo 'Error 11';
exit;
}
/* Read file. */
- header ('Content-Length: ' . $link['file_size']);
- header ('Content-Type: ' . $link['mime_type']);
- header ('Content-Disposition: attachment; filename="' .
+ header('Content-Length: ' . $link['file_size']);
+ header('Content-Type: ' . $link['mime_type']);
+ header('Content-Disposition: attachment; filename="' .
$link['file_name'] . '"');
- $r = fopen (VAR_FILES . $p . $link['md5'], 'r');
- while (!feof ($r))
- {
- print fread ($r, 1024);
+ $r = fopen(VAR_FILES . $p . $link['md5'], 'r');
+ while (!feof($r)) {
+ print fread($r, 1024);
ob_flush();
}
- fclose ($r);
+ fclose($r);
- if ($link['onetime'] == 'O')
- jirafeau_delete_link ($link_name);
+ if ($link['onetime'] == 'O') {
+ jirafeau_delete_link($link_name);
+ }
exit;
-}
-elseif (isset ($_GET['get_capacity']))
-{
- echo min (jirafeau_ini_to_bytes (ini_get ('post_max_size')),
- jirafeau_ini_to_bytes (ini_get ('upload_max_filesize')));
-}
-elseif (isset ($_GET['get_maximal_upload_size']))
-{
+} elseif (isset($_GET['get_capacity'])) {
+ echo jirafeau_get_max_upload_size_bytes();
+} elseif (isset($_GET['get_maximal_upload_size'])) {
echo $cfg['maximal_upload_size'];
-}
-elseif (isset ($_GET['get_version']))
-{
+} elseif (isset($_GET['get_version'])) {
echo JIRAFEAU_VERSION;
-}
-elseif (isset ($_GET['lang']))
-{
+} elseif (isset($_GET['lang'])) {
$l=$_GET['lang'];
- if ($l == "bash")
- {
-?>
+ if ($l == "bash") {
+ ?>
#!/bin/bash
# This script has been auto-generated by Jirafeau but you can still edit options below.
# Config begin
proxy='' # Or set JIRAFEAU_PROXY.
-url='' # Or set JIRAFEAU_URL.
+url='' # Or set JIRAFEAU_URL.
time='' # Or set JIRAFEAU_TIME.
one_time='' # Or set JIRAFEAU_ONE_TIME.
curl='' # Or set JIRAFEAU_CURL_PATH.
@@ -303,7 +274,7 @@ if [ -z "$2" ]; then
echo
echo "Global variables to export:"
echo " JIRAFEAU_PROXY: Domain and port of proxy server, eg. »proxysever.example.com:3128«"
- echo " JIRAFEAU_URL : URI to Jirafeau installation and API page with trailing slash, eg. »https://example.com/jirafeau/script.php«"
+ echo " JIRAFEAU_URL : URI to Jirafeau installation with trailing slash, eg. »https://example.com/jirafeau/«"
echo " JIRAFEAU_TIME : expiration time, eg. »minute«, »hour«, »day«, »week«, »month«, »quarter«, »year« or »none«"
echo " JIRAFEAU_ONE_TIME : self-destroy after first download, eg. »1« to enable or »« (empty) to disable"
echo " JIRAFEAU_CURL : alternative path to curl binary"
@@ -326,6 +297,9 @@ if [ -n "$3" ]; then
options="$options -F key=$password"
fi
+apipage='script.php'
+downloadpage='f.php'
+
if [ "$1" == "send" ]; then
if [ ! -f "$2" ]; then
echo "File \"$2\" does not exists."
@@ -336,7 +310,7 @@ if [ "$1" == "send" ]; then
res=$($curl -X POST --http1.0 $proxy $options \
-F "time=$time" \
-F "file=@$2" \
- $url)
+ $url$apipage)
if [[ "$res" == Error* ]]; then
echo "Error while uploading."
@@ -357,12 +331,38 @@ if [ "$1" == "send" ]; then
fi
cnt=$(( cnt + 1 ))
done)
- echo "Download link:"
- echo "${url}?h=$code"
- echo "Direct download link:"
- echo "${url}?h=$code&d=1"
+ key_code=$(cnt=0; echo "$res" | while read l; do
+ if [[ "$cnt" == "2" ]]; then
+ echo "$l"
+ fi
+ cnt=$(( cnt + 1 ))
+ done)
+
+ echo
+ echo "Download page:"
+ if [[ $key_code ]]; then
+ echo " ${url}${downloadpage}?h=$code&k=$key_code"
+ else
+ echo " ${url}${downloadpage}?h=$code"
+ fi
+ echo "Direct download:"
+ if [[ $key_code ]]; then
+ echo " ${url}${downloadpage}?h=$code&k=$key_code&d=1"
+ else
+ echo " ${url}${downloadpage}?h=$code&d=1"
+ fi
echo "Delete link:"
- echo "${url}?h=$code&d=$del_code"
+ echo " ${url}${downloadpage}?h=$code&d=$del_code"
+ echo
+ echo "Download via API:"
+ if [[ $key_code ]]; then
+ echo " ${0} get ${url}${apipage}?h=$code&k=$key_code [PASSWORD}"
+ else
+ echo " ${0} get ${url}${apipage}?h=$code [PASSWORD}"
+ fi
+ echo "Delete via API:"
+ echo " ${0} delete ${url}${downloadpage}?h=$code&d=$del_code"
+
elif [ "$1" == "get" ]; then
if [ -z "$password" ]; then
$curl $proxy -OJ "$2"
@@ -373,129 +373,47 @@ elif [ "$1" == "delete" ]; then
$curl $proxy "$2"
fi