### Can I buy you a coffee?
-You can [drop few bucks for Jérôme Jutteau](https://www.paypal.com/paypalme/jeromejutteau).
+You can [drop few bucks for Jérôme Jutteau](https://www.paypal.com/paypalme/jeromejutteau)
+
+Many Thanks <3
\ No newline at end of file
}
?>
-<div id="upload_finished">
- <p><?php echo t('FILE_UP') ?></p>
- <div id="upload_finished_download_page">
- <p>
- <a id="upload_link" href=""><?php echo t('DL_PAGE') ?></a>
- <a id="upload_link_email" href=""><img id="upload_image_email"/></a>
- </p><p>
- <code id=upload_link_text></code>
- <button id="upload_link_button">📋</button>
- </p>
- </div>
-
- <?php if ($cfg['download_password_requirement'] === "generated") {
- ?>
- <div id="show_password">
- <p><?php echo t('PSW') ?></p>
-
- <div id="download_password">
- <p>
- <?php echo '<input id="output_key" value="' . $download_pass . '"/>'?>
- <button id="password_copy_button">📋</button>
- </p>
- </div>
- </div>
- <?php
- }?>
-
- <?php if ($cfg['preview'] == true) {
- ?>
- <div id="upload_finished_preview">
- <p>
- <a id="preview_link" href=""><?php echo t('VIEW_LINK') ?></a>
- </p><p>
- <code id=preview_link_text></code>
- <button id="preview_link_button">📋</button>
- </p>
- </div>
- <?php
- } ?>
-
- <div id="upload_direct_download">
- <p>
- <a id="direct_link" href=""><?php echo t('DIRECT_DL') ?></a>
- </p><p>
- <code id=direct_link_text></code>
- <button id="direct_link_button">📋</button>
- </p>
- </div>
-
- <div id="upload_delete">
- <p>
- <a id="delete_link" href=""><?php echo t('DELETE_LINK') ?></a>
- </p><p>
- <code id=delete_link_text></code>
- <button id="delete_link_button">📋</button>
- </p>
- </div>
-
- <div id="upload_validity">
- <p><?php echo t('VALID_UNTIL'); ?>:</p>
- <p id="date"></p>
- </div>
-</div>
+<?php jirafeau_create_upload_finished_box($cfg['preview']); ?>
<div id="uploading">
<p>
}?>
<tr>
<td><label for="select_time"><?php echo t('TIME_LIM') . ':'; ?></label></td>
- <td><select name="time" id="select_time">
- <?php
-$expirationTimeOptions = array(
- array(
- 'value' => 'minute',
- 'label' => '1_MIN'
- ),
- array(
- 'value' => 'hour',
- 'label' => '1_H'
- ),
- array(
- 'value' => 'day',
- 'label' => '1_D'
- ),
- array(
- 'value' => 'week',
- 'label' => '1_W'
- ),
- array(
- 'value' => 'fortnight',
- 'label' => '2_W'
- ),
- array(
- 'value' => 'month',
- 'label' => '1_M'
- ),
- array(
- 'value' => 'quarter',
- 'label' => '1_Q'
- ),
- array(
- 'value' => 'year',
- 'label' => '1_Y'
- ),
- array(
- 'value' => 'none',
- 'label' => 'NONE'
- )
-);
-foreach ($expirationTimeOptions as $expirationTimeOption) {
- $selected = ($expirationTimeOption['value'] === $cfg['availability_default'])? 'selected="selected"' : '';
- if (true === $cfg['availabilities'][$expirationTimeOption['value']]) {
- echo '<option value="' . $expirationTimeOption['value'] . '" ' .
- $selected . '>' . t($expirationTimeOption['label']) . '</option>';
- }
-}
-?>
- </select></td>
+ <td>
+ <?php jirafeau_create_selection_array($cfg); ?>
+ </td>
</tr>
<?php
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+ function template_js_preview_link() {
+ ?>
+ if (!!document.getElementById('preview_link'))
+ {
+ document.getElementById('upload_finished_preview').style.display = 'none';
+ var preview_link_href = 'f.php?h=' + reference + '&p=1';
+ if (crypt_key.length > 0)
+ {
+ preview_link_href += '&k=' + crypt_key;
+ }
+
+ // Test if content can be previewed
+ type = document.getElementById('file_select').files[0].type;
+ if ((type.startsWith('image/')
+ || type.startsWith('audio')
+ || type.startsWith('text/plain')
+ || type.startsWith('video/'))
+ && !type.includes('image/svg+xml'))
+ {
+ document.getElementById('preview_link').href = preview_link_href;
+ document.getElementById('preview_link_text').innerHTML = web_root + preview_link_href;
+ document.getElementById('upload_finished_preview').style.display = '';
+ }
+ }
+ <?php
+ }
+function template_js_download_page() {
+ ?>
+ // Download page
+ var download_link_href = 'f.php?h=' + reference;
+ if (crypt_key.length > 0)
+ {
+ download_link_href += '&k=' + crypt_key;
+ }
+ if (!!document.getElementById('upload_finished_download_page'))
+ {
+ document.getElementById('upload_link').href = download_link_href;
+ document.getElementById('upload_link_text').innerHTML = web_root + download_link_href;
+ }
+ <?php
+}
+function template_js_email_link() {
+ ?>
+ // Email link
+ var b = encodeURIComponent("<?php echo t("DL"); ?> \"" + filename + "\":") + "%0D" + "%0A";
+ b += encodeURIComponent(web_root + download_link_href) + "%0D" + "%0A";
+ if (false == isEmpty(date))
+ {
+ b += "%0D" + "%0A" + encodeURIComponent("<?php echo t("VALID_UNTIL"); ?>: " + date.format('YYYY-MM-DD hh:mm (GMT O)')) + "%0D" + "%0A";
+ document.getElementById('upload_link_email').href = "mailto:?body=" + b + "&subject=" + encodeURIComponent(filename);
+ }
+ <?php
+}
+function template_js_delete_link() {
+ ?>
+ // Delete link
+ var delete_link_href = 'f.php?h=' + reference + '&d=' + delete_code;
+ document.getElementById('delete_link').href = delete_link_href;
+ document.getElementById('delete_link_text').innerHTML = web_root + delete_link_href;
+ <?php
+}
+ function template_js_direct_download() {
+ ?>
+ // Direct download link
+ var direct_download_link_href = 'f.php?h=' + reference + '&d=1';
+ if (crypt_key.length > 0)
+ {
+ direct_download_link_href += '&k=' + crypt_key;
+ }
+ document.getElementById('direct_link').href = direct_download_link_href;
+ document.getElementById('direct_link_text').innerHTML = web_root + direct_download_link_href;
+ <?php
+ }
+ function template_js_date_function() {
+ ?>
+ // Validity date
+ if (isEmpty(date))
+ {
+ document.getElementById('date').style.display = 'none';
+ }
+ else {
+ document.getElementById('date').innerHTML =
+ '<span class="datetime"'
+ + 'data-datetime="'
+ + dateToUtcString(date) + ' (GMT"'
+ + 'title="'
+ + dateToUtcString(date) + ' (GMT)">'
+ + date.format('YYYY-MM-DD hh:mm (GMT O)')
+ + '</span>';
+ document.getElementById('date').style.display = '';
+ }
+ <?php
+ }
+
+
+
+
header('Content-Type: text/javascript');
define('JIRAFEAU_ROOT', dirname(__FILE__) . '/../');
}
}
+// evil copy and paste from show_link - TODO refactor show link
+function show_link_from_php (file_name,file_type, reference, delete_code, crypt_key, date)
+{
+ <?php template_js_download_page(); ?>
+
+
+ var filename = file_name;
+ <?php template_js_email_link(); ?>
+ <?php template_js_delete_link(); ?>
+ <?php template_js_date_function(); ?>
+ var type = file_type;
+ <?php template_js_direct_download();?>
+}
+
+
+
function show_link (reference, delete_code, crypt_key, date)
{
// Upload finished
document.getElementById('upload_finished').style.display = '';
document.title = "100% - <?php echo empty($cfg['title']) ? 'Jirafeau' : $cfg['title']; ?>";
- // Download page
- var download_link_href = 'f.php?h=' + reference;
- if (crypt_key.length > 0)
- {
- download_link_href += '&k=' + crypt_key;
- }
- if (!!document.getElementById('upload_finished_download_page'))
- {
- document.getElementById('upload_link').href = download_link_href;
- document.getElementById('upload_link_text').innerHTML = web_root + download_link_href;
- }
-
+ <?php template_js_download_page(); ?>
// Email link
var filename = document.getElementById('file_select').files[0].name;
- var b = encodeURIComponent("<?php echo t("DL"); ?> \"" + filename + "\":") + "%0D" + "%0A";
- b += encodeURIComponent(web_root + download_link_href) + "%0D" + "%0A";
- if (false == isEmpty(date))
- {
- b += "%0D" + "%0A" + encodeURIComponent("<?php echo t("VALID_UNTIL"); ?>: " + date.format('YYYY-MM-DD hh:mm (GMT O)')) + "%0D" + "%0A";
- document.getElementById('upload_link_email').href = "mailto:?body=" + b + "&subject=" + encodeURIComponent(filename);
- }
- // Delete link
- var delete_link_href = 'f.php?h=' + reference + '&d=' + delete_code;
- document.getElementById('delete_link').href = delete_link_href;
- document.getElementById('delete_link_text').innerHTML = web_root + delete_link_href;
+ <?php template_js_email_link(); ?>
+
+ <?php template_js_delete_link(); ?>
+ <?php template_js_date_function(); ?>
- // Validity date
- if (isEmpty(date))
- {
- document.getElementById('date').style.display = 'none';
- }
- else {
- document.getElementById('date').innerHTML = '<span class="datetime" title="'
- + dateToUtcString(date) + ' (GMT)">'
- + date.format('YYYY-MM-DD hh:mm (GMT O)')
- + '</span>';
- document.getElementById('date').style.display = '';
- }
// Preview link (if allowed)
- if (!!document.getElementById('preview_link'))
- {
- document.getElementById('upload_finished_preview').style.display = 'none';
- var preview_link_href = 'f.php?h=' + reference + '&p=1';
- if (crypt_key.length > 0)
- {
- preview_link_href += '&k=' + crypt_key;
- }
+
+ var type = document.getElementById('file_select').files[0].type;
+ <?php template_js_preview_link(); ?>
- // Test if content can be previewed
- type = document.getElementById('file_select').files[0].type;
- if ((type.startsWith('image/')
- || type.startsWith('audio')
- || type.startsWith('text/plain')
- || type.startsWith('video/'))
- && !type.includes('image/svg+xml'))
- {
- document.getElementById('preview_link').href = preview_link_href;
- document.getElementById('preview_link_text').innerHTML = web_root + preview_link_href;
- document.getElementById('upload_finished_preview').style.display = '';
- }
- }
+ <?php template_js_direct_download();?>
- // Direct download link
- var direct_download_link_href = 'f.php?h=' + reference + '&d=1';
- if (crypt_key.length > 0)
- {
- direct_download_link_href += '&k=' + crypt_key;
- }
- document.getElementById('direct_link').href = direct_download_link_href;
- document.getElementById('direct_link_text').innerHTML = web_root + direct_download_link_href;
// Hide preview and direct download link if password is set
if (document.getElementById('input_key').value.length > 0)
'link' => '',
'delete_link' => ''));
}
+ jirafeau_add_file($file, $one_time_download, $key, $time, $ip, $crypt, $link_name_length, $file_hash_method);
+}
- /* array representing no error */
- $noerr = array('has_error' => false, 'why' => '');
-
+/**
+ *
+ * @param bool $crypt_module_enabled
+ * @param string $file_path
+ * @return array [bool, string]
+ */
+function jirafeau_handle_add_file_encryption($crypt_module_enabled, $file_path) {
/* Crypt file if option is enabled. */
$crypted = false;
$crypt_key = '';
- if ($crypt == true && !(extension_loaded('sodium') == true)) {
+ if ($crypt_module_enabled == true && !(extension_loaded('sodium') == true)) {
error_log("PHP extension sodium not loaded, won't encrypt in Jirafeau");
}
- if ($crypt == true && extension_loaded('sodium') == true) {
- $crypt_key = jirafeau_encrypt_file($file['tmp_name'], $file['tmp_name'].'crypt');
+ if ($crypt_module_enabled == true && extension_loaded('sodium') == true) {
+ $crypt_key = jirafeau_encrypt_file($file_path, $file_path.'crypt');
if (strlen($crypt_key) > 0) {
- if (rename($file['tmp_name'].'crypt', $file['tmp_name']) === true) {
+ if (rename($file_path.'crypt', $file_path) === true) {
$crypted = true;
}
}
}
+ return [$crypted, $crypt_key];
+}
+
+/**
+ * adds an uploaded or copy/linked local file
+ * @param $file the file struct given by $_FILE[]
+ * @param $one_time_download is the file a one time download ?
+ * @param $key if not empty, protect the file with this key
+ * @param $time the time of validity of the file
+ * @param $ip uploader's ip
+ * @param $crypt boolean asking to crypt or not
+ * @param $link_name_length size of the link name
+ * @param $is_upload, determines if the file is uploaded or local - it controls which file-functions are used
+ * @return array an array containing some information
+ * 'error' => information on possible errors
+ * 'link' => the link name of the uploaded file
+ * 'delete_link' => the link code to delete file
+ */
+function jirafeau_add_file($file, $one_time_download, $key, $time, $ip, $crypt, $link_name_length, $file_hash_method, $is_upload = true)
+{
+ // TODO needs to be adapted
+ $move_operation = $is_upload ? 'move_uploaded_file' : 'symlink';
+
+ /* array representing no error */
+ $noerr = array('has_error' => false, 'why' => '');
+
+ $crypted = false;
+ $crypt_key = '';
+ list($crypted, $crypt_key) = jirafeau_handle_add_file_encryption($crypt, $file['tmp_name']);
+
+
/* file information */
$hash = jirafeau_hash_file($file_hash_method, $file['tmp_name']);
$name = str_replace(NL, '', trim($file['name']));
if (file_exists(VAR_FILES . $p . $hash)) {
$rc = unlink($file['tmp_name']);
} elseif ((file_exists(VAR_FILES . $p) || @mkdir(VAR_FILES . $p, 0755, true))
- && move_uploaded_file($file['tmp_name'], VAR_FILES . $p . $hash)) {
+ &&
+ //move_uploaded_file($file['tmp_name'], VAR_FILES . $p . $hash))
+ $move_operation($file['tmp_name'], VAR_FILES . $p . $hash))
+ {
+
$rc = true;
}
if (!$rc) {
$handle,
$name . NL. $mime_type . NL. $size . NL. $password . NL. $time .
NL . $hash. NL . ($one_time_download ? 'O' : 'R') . NL . time() .
- NL . $ip . NL. $delete_link_code . NL . ($crypted ? 'C2' : 'O')
+ NL . $ip . NL. $delete_link_code . NL . ($crypted ? 'C' : 'O')
);
fclose($handle);
$hash_link = substr(base_16_to_64(md5_file($link_tmp_name)), 0, $link_name_length);
'crypt_key' => $crypt_key);
}
+
+function jirafeau_admin_list_table ($name, $file_hash, $link_hash, $visitor_function = null) {
+ echo '<fieldset><legend>';
+ if (!empty($name)) {
+ echo t('FILENAME') . ": " . jirafeau_escape($name);
+ }
+ if (!empty($file_hash)) {
+ echo t('FILE') . ": " . jirafeau_escape($file_hash);
+ }
+ if (!empty($link_hash)) {
+ echo t('LINK') . ": " . jirafeau_escape($link_hash);
+ }
+ if (empty($name) && empty($file_hash) && empty($link_hash)) {
+ echo t('LS_FILES');
+ }
+ echo '</legend>';
+ echo '<table>';
+ echo '<tr>';
+ echo '<th></th>';
+ echo '<th>' . t('ACTION') . '</th>';
+ echo '</tr>';
+ if ($visitor_function != null) {
+ $visitor_function($name, $file_hash, $link_hash);
+ }
+ echo '</table></fieldset>';
+}
+
+
+
+
+
/**
* Tells if a mime-type is viewable in a browser
* @param $mime the mime type
}
/**
- * List files in admin interface.
+ * List files ii folder in admin interface.
*/
function jirafeau_admin_list($name, $file_hash, $link_hash)
{
- echo '<fieldset><legend>';
- if (!empty($name)) {
- echo t('FILENAME') . ": " . jirafeau_escape($name);
- }
- if (!empty($file_hash)) {
- echo t('FILE') . ": " . jirafeau_escape($file_hash);
- }
- if (!empty($link_hash)) {
- echo t('LINK') . ": " . jirafeau_escape($link_hash);
- }
- if (empty($name) && empty($file_hash) && empty($link_hash)) {
- echo t('LS_FILES');
- }
- echo '</legend>';
- echo '<table>';
- echo '<tr>';
- echo '<th></th>';
- echo '<th>' . t('ACTION') . '</th>';
- echo '</tr>';
-
- /* Get all links files. */
- $stack = array(VAR_LINKS);
- while (($d = array_shift($stack)) && $d != null) {
- $dir = scandir($d);
- foreach ($dir as $node) {
- if (strcmp($node, '.') == 0 || strcmp($node, '..') == 0 ||
- preg_match('/\.tmp/i', "$node")) {
- continue;
- }
- if (is_dir($d . $node)) {
- /* Push new found directory. */
- $stack[] = $d . $node . '/';
- } elseif (is_file($d . $node)) {
- /* Read link information. */
- $l = jirafeau_get_link($node);
- if (!count($l)) {
+ $function = function($name, $file_hash, $link_hash) {
+ /* Get all links files. */
+ $stack = array(VAR_LINKS);
+ while (($d = array_shift($stack)) && $d != null) {
+ $dir = scandir($d);
+ foreach ($dir as $node) {
+ if (strcmp($node, '.') == 0 || strcmp($node, '..') == 0 ||
+ preg_match('/\.tmp/i', "$node")) {
continue;
}
- $ld = jirafeau_get_download_stats($node);
-
- /* Filter. */
- if (!empty($name) && !@preg_match("/$name/i", jirafeau_escape($l['file_name']))) {
- continue;
+ if (is_dir($d . $node)) {
+ /* Push new found directory. */
+ $stack[] = $d . $node . '/';
+ } elseif (is_file($d . $node)) {
+ /* Read link information. */
+ $l = jirafeau_get_link($node);
+ if (!count($l)) {
+ continue;
+ }
+
+ /* Filter. */
+ if (!empty($name) && !@preg_match("/$name/i", jirafeau_escape($l['file_name']))) {
+ continue;
+ }
+ if (!empty($file_hash) && $file_hash != $l['hash']) {
+ continue;
+ }
+ if (!empty($link_hash) && $link_hash != $node) {
+ continue;
+ }
+ /* Print link information. */
+ echo '<tr>';
+ echo '<td>' .
+ '<strong><a id="upload_link" href="f.php?h='. jirafeau_escape($node) .'" title="' .
+ t('DL_PAGE') . '">' . jirafeau_escape($l['file_name']) . '</a></strong><br/>';
+ echo t('TYPE') . ': ' . jirafeau_escape($l['mime_type']) . '<br/>';
+ echo t('SIZE') . ': ' . jirafeau_human_size($l['file_size']) . '<br>';
+ echo t('EXPIRE') . ': ' . ($l['time'] == -1 ? '∞' : jirafeau_get_datetimefield($l['time'])) . '<br/>';
+ echo t('ONETIME') . ': ' . ($l['onetime'] == 'O' ? 'Yes' : 'No') . '<br/>';
+ echo t('UPLOAD_DATE') . ': ' . jirafeau_get_datetimefield($l['upload_date']) . '<br/>';
+ if (strlen($l['ip']) > 0) {
+ echo t('ORIGIN') . ': ' . $l['ip'] . '<br/>';
+ }
+ echo '</td><td>';
+ echo '<form method="post">' .
+ '<input type = "hidden" name = "action" value = "download"/>' .
+ '<input type = "hidden" name = "link" value = "' . $node . '"/>' .
+ jirafeau_admin_csrf_field() .
+ '<input type = "submit" value = "' . t('DL') . '" />' .
+ '</form>' .
+ '<form method="post">' .
+ '<input type = "hidden" name = "action" value = "delete_link"/>' .
+ '<input type = "hidden" name = "link" value = "' . $node . '"/>' .
+ jirafeau_admin_csrf_field() .
+ '<input type = "submit" value = "' . t('DEL_LINK') . '" />' .
+ '</form>' .
+ '<form method="post">' .
+ '<input type = "hidden" name = "action" value = "delete_file"/>' .
+ '<input type = "hidden" name = "hash" value = "' . $l['hash'] . '"/>' .
+ jirafeau_admin_csrf_field() .
+ '<input type = "submit" value = "' . t('DEL_FILE_LINKS') . '" />' .
+ '</form>' .
+ '</td>';
+ echo '</tr>';
}
- if (!empty($file_hash) && $file_hash != $l['hash']) {
- continue;
- }
- if (!empty($link_hash) && $link_hash != $node) {
- continue;
- }
- /* Print link information. */
- echo '<tr>';
- echo '<td>' .
- '<strong><a id="upload_link" href="f.php?h='. jirafeau_escape($node) .'" title="' .
- t('DL_PAGE') . '">' . jirafeau_escape($l['file_name']) . '</a></strong><br/>';
- echo t('TYPE') . ': ' . jirafeau_escape($l['mime_type']) . '<br/>';
- echo t('SIZE') . ': ' . jirafeau_human_size($l['file_size']) . '<br>';
- echo t('EXPIRE') . ': ' . ($l['time'] == -1 ? '∞' : jirafeau_get_datetimefield($l['time'])) . '<br/>';
- echo t('ONETIME') . ': ' . ($l['onetime'] == 'O' ? 'Yes' : 'No') . '<br/>';
- echo t('UPLOAD_DATE') . ': ' . jirafeau_get_datetimefield($l['upload_date']) . '<br/>';
- if (strlen($l['ip']) > 0) {
- echo t('ORIGIN') . ': ' . $l['ip'] . '<br/>';
- }
- echo t('DOWNLOAD_COUNT') . ': ' . $ld['count'] . '<br/>';
- if ($ld['count'] > 0) {
- echo t('DOWNLOAD_DATE') . ': ' . jirafeau_get_datetimefield($ld['date']) . '<br/>';
- echo t('DOWNLOAD_IP') . ': ' . $ld['ip'] . '<br/>';
- }
- echo '</td><td>';
- echo '<form method="post">' .
- '<input type = "hidden" name = "action" value = "download"/>' .
- '<input type = "hidden" name = "link" value = "' . $node . '"/>' .
- jirafeau_admin_csrf_field() .
- '<input type = "submit" value = "' . t('DL') . '" />' .
- '</form>' .
- '<form method="post">' .
- '<input type = "hidden" name = "action" value = "delete_link"/>' .
- '<input type = "hidden" name = "link" value = "' . $node . '"/>' .
- jirafeau_admin_csrf_field() .
- '<input type = "submit" value = "' . t('DEL_LINK') . '" />' .
- '</form>' .
- '<form method="post">' .
- '<input type = "hidden" name = "action" value = "delete_file"/>' .
- '<input type = "hidden" name = "hash" value = "' . $l['hash'] . '"/>' .
- jirafeau_admin_csrf_field() .
- '<input type = "submit" value = "' . t('DEL_FILE_LINKS') . '" />' .
- '</form>' .
- '</td>';
- echo '</tr>';
}
}
- }
- echo '</table></fieldset>';
+ };
+ jirafeau_admin_list_table($name, $file_hash, $link_hash, $function);
}
/**
function jirafeau_async_init($filename, $type, $one_time, $key, $time, $ip)
{
/* Create temporary folder. */
- $ref;
- $p;
+ $ref = '';
+ $p = '';
$code = jirafeau_gen_random(4);
do {
$ref = jirafeau_gen_random(32);
fwrite($handle, $count . NL . time() . NL . $ip);
fclose($handle);
}
+
+function jirafeau_create_upload_finished_box($preview = true) {
+ ?>
+
+ <div id="upload_finished">
+ <p><?php echo t('FILE_UP') ?></p>
+
+ <div id="upload_finished_download_page">
+ <p>
+ <a id="upload_link" href=""><?php echo t('DL_PAGE') ?></a>
+ <a id="upload_link_email" href=""><img id="upload_image_email"/></a>
+ </p><p>
+ <code id=upload_link_text></code>
+ <button id="upload_link_button">📋</button>
+ </p>
+ </div>
+
+ <?php if ($preview == true) {
+ ?>
+ <div id="upload_finished_preview">
+ <p>
+ <a id="preview_link" href=""><?php echo t('VIEW_LINK') ?></a>
+ </p><p>
+ <code id=preview_link_text></code>
+ <button id="preview_link_button">📋</button>
+ </p>
+ </div>
+ <?php
+} ?>
+
+ <div id="upload_direct_download">
+ <p>
+ <a id="direct_link" href=""><?php echo t('DIRECT_DL') ?></a>
+ </p><p>
+ <code id=direct_link_text></code>
+ <button id="direct_link_button">📋</button>
+ </p>
+ </div>
+
+ <div id="upload_delete">
+ <p>
+ <a id="delete_link" href=""><?php echo t('DELETE_LINK') ?></a>
+ </p><p>
+ <code id=delete_link_text></code>
+ <button id="delete_link_button">📋</button>
+ </p>
+ </div>
+
+ <div id="upload_validity">
+ <p><?php echo t('VALID_UNTIL'); ?>:</p>
+ <p id="date"></p>
+ </div>
+</div>
+<?php
+}
+
+function jirafeau_get_expiration_time_options() {
+ return
+ array(
+ array(
+ 'value' => 'minute',
+ 'label' => '1_MIN'
+ ),
+ array(
+ 'value' => 'hour',
+ 'label' => '1_H'
+ ),
+ array(
+ 'value' => 'day',
+ 'label' => '1_D'
+ ),
+ array(
+ 'value' => 'week',
+ 'label' => '1_W'
+ ),
+ array(
+ 'value' => 'fortnight',
+ 'label' => '2_W'
+ ),
+ array(
+ 'value' => 'month',
+ 'label' => '1_M'
+ ),
+ array(
+ 'value' => 'quarter',
+ 'label' => '1_Q'
+ ),
+ array(
+ 'value' => 'year',
+ 'label' => '1_Y'
+ ),
+ array(
+ 'value' => 'none',
+ 'label' => 'NONE'
+ )
+ );
+}
+
+
+
+ /**
+ *
+ * creates the time selection field
+ * @param mixed $cfg
+ * @return void
+ */
+ function jirafeau_create_selection_array($cfg) {
+ echo
+ '<select name="time" id="select_time">';
+
+
+ $expirationTimeOptions = jirafeau_get_expiration_time_options();
+
+ foreach ($expirationTimeOptions as $expirationTimeOption) {
+ $selected = ($expirationTimeOption['value'] === $cfg['availability_default'])? 'selected="selected"' : '';
+ if (true === $cfg['availabilities'][$expirationTimeOption['value']]) {
+ echo '<option value="' . $expirationTimeOption['value'] . '" ' .
+ $selected . '>' . t($expirationTimeOption['label']) . '</option>';
+ }
+ }
+ echo '</select>';
+ }
+
+ function jirafeau_datestr_to_int ($time_str) {
+ $time = time();
+ switch ($time_str) {
+ case 'minute':
+ $time += JIRAFEAU_MINUTE;
+ break;
+ case 'hour':
+ $time += JIRAFEAU_HOUR;
+ break;
+ case 'day':
+ $time += JIRAFEAU_DAY;
+ break;
+ case 'week':
+ $time += JIRAFEAU_WEEK;
+ break;
+ case 'fortnight':
+ $time += JIRAFEAU_FORTNIGHT;
+ break;
+ case 'month':
+ $time += JIRAFEAU_MONTH;
+ break;
+ case 'quarter':
+ $time += JIRAFEAU_QUARTER;
+ break;
+ case 'year':
+ $time += JIRAFEAU_YEAR;
+ break;
+ default:
+ $time = JIRAFEAU_INFINITY;
+ break;
+ }
+ return $time;
+}
+
+
+
+
+/**
+ * links or copy a local file
+ * TODO: boolean in config for linking
+ * @param string $filepath
+ * @param $one_time_download is the file a one time download ?
+ * @param $key if not empty, protect the file with this key
+ * @param $time the time of validity of the file
+ * @param $ip uploader's ip
+ * @param $crypt boolean asking to crypt or not
+ * @param $link_name_length size of the link name
+ * @returns an array containing some information
+ * 'error' => information on possible errors
+ * 'link' => the link name of the uploaded file
+ * 'delete_link' => the link code to delete file
+ */
+function jirafeau_copy_local_file($local_file_path, $one_time_download, $key, $time, $ip, $crypt, $link_name_length, $file_hash_method) {
+
+ if (!file_exists($local_file_path)) {
+ return (array(
+ 'error' =>
+ array('has_error' => true,
+ 'why' => t('INTERNAL_ERROR_FILE_NOT_EXIST')),
+ 'link' =>'',
+ 'delete_link' => ''));
+ }
+ if(
+ // sanity check if file can be opened
+ $file = fopen($local_file_path, "r")
+ )
+ {
+ // close file pointer - it's not needed here
+ fclose($file);
+ $time_in_int = jirafeau_datestr_to_int($time);
+ return jirafeau_add_file(
+ jirafeau_create_file_array($local_file_path),
+ $one_time_download,
+ $key,
+ $time_in_int,
+ $ip,
+ $crypt,
+ $link_name_length,
+ $file_hash_method,
+ false
+ );
+ }
+ else {
+ return (array(
+ 'error' =>
+ array('has_error' => true,
+ 'why' => t('INTERNAL_ERROR_FP_OPEN_LOCAL')),
+ 'link' =>'',
+ 'delete_link' => ''));
+ }
+
+}
+
+
+function jirafeau_create_file_array($file_path) {
+ return
+ [
+ 'type' => mime_content_type($file_path),
+ 'tmp_name' => $file_path,
+ 'name' => basename($file_path),
+ 'size' => filesize($file_path),
+ ];
+}
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Una quincena",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "Verschlüsselung ist in der Konfiguration aktiviert, aber das PHP-Modul \"Sodium\" ist nicht verfügbar! Verschlüsselung ist nicht verfügbar!",
+ "ADMIN_FOLDER_INFO": "(Datei muss im Ordner %s liegen)",
+ "ADMIN_FILE_SELECT": "Dateiname:",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "Die zu verlinkende Datei konnte nicht gefunden werden",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "Internal Error - Die zu verlinkende Datei konnte nicht geöffnet werden",
"INSTALL_FILE_NOT_FOUND_TITLE": "Installationsprogramm nicht gefunden",
"INSTALL_FILE_NOT_FOUND_DESC": "Installation wurde nicht erfolgreich abgeschlossen und install.php scheint nicht zu existieren",
"2_W": "Zwei Wochen",
"HERE_SOLUTION": "Hier ist eine Lösung",
"INFO": "Information",
"JI_INSTALL": "Installation von Jirafeau",
- "INSTALL_SCRIPT_HERE": "Installer-Script noch vorhanden",
+ "INSTALL_SCRIPT_HERE": "Installer-Skript noch vorhanden",
"INTERNAL_ERROR_DEL": "Interner Fehler während der Dateierstellung.",
"JI_PROJECT": "Jirafeau-Projekt",
- "ADMIN_INTERFACE_INFO": "Jirafeau hat eine Admin-Oberfläche (durch admin.php). Für den Zugriff auf die Schnittstelle kann ein Passwort festlegt werden. Um die Schnittstelle zu deaktivieren, Passwort einfach leer lassen.",
+ "ADMIN_INTERFACE_INFO": "Jirafeau hat eine Admin-Oberfläche (durch admin.php). Für den Zugriff auf die Schnittstelle kann ein Kennwort festlegt. werden. Um die Schnittstelle zu deaktivieren, Kennwort einfach leer lassen.",
"JI_FONCTIONAL": "Jirafeau ist nun voll funktionsfähig",
"SETTING_UP": "Jirafeau richtet die Webseite entsprechend der angegebenen Konfiguration ein.",
"JI_WEB_RE": "Jirafeau, dein Web-Speicher für Dateien",
"LOGIN": "Anmelden",
"LOGOUT": "Abmelden",
"MADE_WITH": "Erstellt mit",
+ "DESIGNED": "",
"MAX_FILE_SIZE": "Maximale Dateigröße",
"NEXT_STEP": "Nächster Schritt",
"NONE": "Nie",
"NO_ADMIN_AUTH": "Leider bist du nicht auf der Admin-Oberfläche angemeldet.",
"TOS": "Allgemeine Geschäftsbedingungen",
"ASYNC_DIR_W": "Das Async-Verzeichnis ist nicht beschreibbar.",
- "BASE_ADDR_INFO": "Die Basisadresse von Jirafeau ist der erste Teil der URL, bis einschließlich dem letzten Schrägstrich, zum Beispiel: „http://www.example.com/“. Abschließenden Schrägstrich nicht vergessen!",
- "DATA_DIR_EXPLAINATION": "Im Datenverzeichnis werden deine Dateien und zugehörige Informationen gespeichert. Dieses Verzeichnis sollte sich außerhalb der Webseite befinden oder zumindest beschränkten Zugriff haben. Abschließenden Schrägstrich nicht vergessen!",
+ "BASE_ADDR_INFO": "Die Basisadresse von Jirafeau ist der erste Teil der URL, bis (einschließlich) dem letzten Schrägstrich. Zum Beispiel: „http://www.example.com/“. Abschließenden Schrägstrich nichrt vergessen!",
+ "DATA_DIR_EXPLAINATION": "Das Datenverzeichnis ist, wo deine Dateien und Informationen über deine Dateien gespeichert werden. Dieses Verzeichnis sollte sich außerhalb der Webseite befinden, oder zumindest beschränkten Zugriff haben. Abschließenden Schrägstrich nichrt vergessen!",
"FILE_DIR_W": "Das Dateiverzeichnis ist nicht beschreibbar.",
"CANNOT_CREATE_DIR": "Der folgende Ordner konnte nicht erstellt werden",
"DIR_NOT_W": "Das folgende Verzeichnis ist nicht beschreibbar",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
"SODIUM_UNAVAILABLE": "Encryption is enabled in configuration, but the Sodium PHP module is not loaded! Encryption is not available!",
+ "ADMIN_FOLDER_INFO": "(File must be in Folder %s)",
+ "ADMIN_FILE_SELECT": "Filename",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "Requested File not found.",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "Internal Error - Requested File could not be opened",
"INSTALL_FILE_NOT_FOUND_TITLE": "Installation file not found",
"INSTALL_FILE_NOT_FOUND_DESC": "Installation is not complete and install.php file does not seem to exist",
"REPORTING_AN_ISSUE": "Reporting an issue",
"MAX_FILE_SIZE": "Maximum file size",
"POWERED_BY": "powered by the copyleft, libre software project Jirafeau",
"MADE_WITH": "Made with",
+ "DESIGNED": "Designed and hosted by",
"JI_PROJECT": "Jirafeau Project",
"1_MIN": "One minute",
"1_H": "One hour",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Una quincena",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "Fichier d'installation non-trouvé",
"INSTALL_FILE_NOT_FOUND_DESC": "L'installation est incomplète et le ficher install.php est introuvable",
"2_W": "Deux semaines",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Due settimane",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "To uker",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Twee weken",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Uma quinzena",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Uma quinzena",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"REPORTING_AN_ISSUE": "",
"SIZE_DATA": "",
"INCOMPATIBLE_OPTIONS_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "Två veckor",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
"ONETIME": "",
"UPLOAD_DATE": "",
"ORIGIN": "",
+ "DOWNLOAD_COUNT": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_IP": "",
"ACTION": "",
"DEL_LINK": "",
"DEL_FILE_LINKS": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "İki hafta",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
{
+ "DOWNLOAD_IP": "",
+ "DOWNLOAD_DATE": "",
+ "DOWNLOAD_COUNT": "",
"SODIUM_UNAVAILABLE": "",
+ "ADMIN_FOLDER_INFO": "",
+ "ADMIN_FILE_SELECT": "",
+ "INTERNAL_ERROR_FILE_NOT_EXIST": "",
+ "INTERNAL_ERROR_FP_OPEN_LOCAL": "",
+ "DESIGNED": "",
"INSTALL_FILE_NOT_FOUND_TITLE": "",
"INSTALL_FILE_NOT_FOUND_DESC": "",
"2_W": "",
<?php
echo t('MADE_WITH') .
' <a href="' . JIRAFEAU_WEBSITE . '" target="_blank" rel="noopener noreferrer">' . t('JI_PROJECT') . '</a>' .
+ '<p> ' . t('DESIGNED') . ' ' . $cfg['contactperson'] . '</p>' .
' (<a href="https://www.gnu.org/licenses/agpl.html" target="_blank" rel="noopener noreferrer"><abbr title="GNU Affero General Public License v3">AGPL-3.0</abbr></a>)';
?>
<!-- Installation dependent links -->
exit;
}
- $time = time();
if (!isset($_POST['time']) || !$cfg['availabilities'][$_POST['time']]) {
echo 'Error 4: The parameter time is invalid.';
exit;
} else {
- switch ($_POST['time']) {
- case 'minute':
- $time += JIRAFEAU_MINUTE;
- break;
- case 'hour':
- $time += JIRAFEAU_HOUR;
- break;
- case 'day':
- $time += JIRAFEAU_DAY;
- break;
- case 'week':
- $time += JIRAFEAU_WEEK;
- break;
- case 'fortnight':
- $time += JIRAFEAU_FORTNIGHT;
- break;
- case 'month':
- $time += JIRAFEAU_MONTH;
- break;
- case 'quarter':
- $time += JIRAFEAU_QUARTER;
- break;
- case 'year':
- $time += JIRAFEAU_YEAR;
- break;
- default:
- $time = JIRAFEAU_INFINITY;
- break;
- }
+ $time = jirafeau_datestr_to_int($_POST['time']);
}
// Check file size
exit;
}
- $time = time();
if (!isset($_POST['time']) || !$cfg['availabilities'][$_POST['time']]) {
echo 'Error 22';
exit;
} else {
- switch ($_POST['time']) {
- case 'minute':
- $time += JIRAFEAU_MINUTE;
- break;
- case 'hour':
- $time += JIRAFEAU_HOUR;
- break;
- case 'day':
- $time += JIRAFEAU_DAY;
- break;
- case 'week':
- $time += JIRAFEAU_WEEK;
- break;
- case 'fortnight':
- $time += JIRAFEAU_FORTNIGHT;
- break;
- case 'month':
- $time += JIRAFEAU_MONTH;
- break;
- case 'quarter':
- $time += JIRAFEAU_QUARTER;
- break;
- case 'year':
- $time += JIRAFEAU_YEAR;
- break;
- default:
- $time = JIRAFEAU_INFINITY;
- break;
- }
+ $time = jirafeau_datestr_to_int($_POST['time']);
}
if ($cfg['store_uploader_ip']) {