X-Git-Url: https://git.p6c8.net/jirafeau_mojo42.git/blobdiff_plain/9e4d7b5f220d21aa832f88efd784e8f464eb5384..eff708d9f129fd6919401d77e1ad99966849ef8e:/script.php
diff --git a/script.php b/script.php
index c3b722f..791e950 100644
--- a/script.php
+++ b/script.php
@@ -17,19 +17,16 @@
* along with this program. If not, see .
*/
-/*
- * This file permits to easyly script file sending, receiving, deleting, ...
- * If you don't want this feature, you can simply delete this file from your
- * web directory.
- */
-define ('JIRAFEAU_ROOT', dirname (__FILE__) . '/');
+/* This file offer a kind of API for jirafeau. */
+
+define('JIRAFEAU_ROOT', dirname(__FILE__) . '/');
-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.
@@ -38,70 +35,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']),
- $key, $time, get_ip_address($cfg),
- $cfg['enable_crypt'], $cfg['link_name_length']);
+ // Check if one time download is enabled
+ if (!$cfg['one_time_download'] && isset($_POST['one_time_download'])) {
+ echo 'Error 26: One time download is disabled.';
+ exit;
+ }
- if (empty($res) || $res['error']['has_error'])
- {
+ $res = jirafeau_upload($_FILES['file'],
+ isset($_POST['one_time_download']),
+ $key, $time, get_ip_address($cfg),
+ $cfg['enable_crypt'], $cfg['link_name_length'],
+ $cfg['file_hash']);
+
+ if (empty($res) || $res['error']['has_error']) {
echo 'Error 6 ' . $res['error']['why'];
exit;
}
@@ -154,91 +147,75 @@ 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['hash']);
+ if (!file_exists(VAR_FILES . $p . $link['hash'])) {
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['hash'], '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.
@@ -249,6 +226,7 @@ url='' # Or set JIRAFEAU_URL.
time='' # Or set JIRAFEAU_TIME.
one_time='' # Or set JIRAFEAU_ONE_TIME.
curl='' # Or set JIRAFEAU_CURL_PATH.
+upload_password='' # Or set JIRAFEAU_UPLOAD_PASSWD
# Config end
if [ -n "$JIRAFEAU_PROXY" ]; then
@@ -271,6 +249,10 @@ if [ -n "$JIRAFEAU_ONE_TIME" ]; then
one_time='1'
fi
+if [ -n "$UPLOAD_PASSWD" ]; then
+ upload_password="$JIRAFEAU_UPLOAD_PASSWORD"
+fi
+
if [ -z "$curl" ]; then
curl="$JIRAFEAU_CURL_PATH"
fi
@@ -305,6 +287,7 @@ if [ -z "$2" ]; then
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"
+ echo " JIRAFEAU_UPLOAD_PASSWD : upload password"
exit 0
fi
@@ -318,6 +301,10 @@ if [ -n "$one_time" ]; then
options="$options -F one_time_download=1"
fi
+f [ -n "$upload_password" ]; then
+ options="$options -F upload_password=$upload_password"
+fi
+
password=''
if [ -n "$3" ]; then
password="$3"
@@ -358,17 +345,35 @@ if [ "$1" == "send" ]; then
fi
cnt=$(( cnt + 1 ))
done)
+ 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:"
- echo " ${url}${downloadpage}?h=$code"
+ if [[ $key_code ]]; then
+ echo " ${url}${downloadpage}?h=$code&k=$key_code"
+ else
+ echo " ${url}${downloadpage}?h=$code"
+ fi
echo "Direct download:"
- echo " ${url}${downloadpage}?h=$code&d=1"
+ 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}${downloadpage}?h=$code&d=$del_code"
echo
echo "Download via API:"
- echo " ${0} get ${url}${apipage}?h=$code [PASSWORD}"
+ 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"
@@ -382,129 +387,53 @@ elif [ "$1" == "delete" ]; then
$curl $proxy "$2"
fi