mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-11-22 14:08:42 +00:00
feat(image_hosting): remove get_image wrapper
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
78d8418c27
commit
d3082fd9d9
@ -16,6 +16,20 @@ DirectorySlash Off
|
|||||||
|
|
||||||
DirectoryIndex
|
DirectoryIndex
|
||||||
|
|
||||||
|
<filesMatch "\.(ico|gif|jpg|png)$">
|
||||||
|
ExpiresActive On
|
||||||
|
ExpiresDefault "access plus 6 month"
|
||||||
|
Header append Cache-Control "public"
|
||||||
|
</filesMatch>
|
||||||
|
|
||||||
|
<filesMatch "\.(css|js)$">
|
||||||
|
ExpiresActive On
|
||||||
|
ExpiresDefault "access plus 1 week"
|
||||||
|
Header append Cache-Control "public"
|
||||||
|
</filesMatch>
|
||||||
|
|
||||||
|
RequestHeader append X-Author "Baoshuo ( https://baoshuo.ren )"
|
||||||
|
|
||||||
RewriteEngine On
|
RewriteEngine On
|
||||||
|
|
||||||
RewriteCond %{QUERY_STRING} ^$
|
RewriteCond %{QUERY_STRING} ^$
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
if (!Auth::check()) {
|
|
||||||
become403Page(UOJLocale::get('need login'));
|
|
||||||
}
|
|
||||||
|
|
||||||
$name = $_GET['image_name'];
|
|
||||||
if (!validateString($name)) {
|
|
||||||
become404Page();
|
|
||||||
}
|
|
||||||
|
|
||||||
$file_name = UOJContext::storagePath() . "/image_hosting/$name.png";
|
|
||||||
|
|
||||||
$finfo = finfo_open(FILEINFO_MIME);
|
|
||||||
$mimetype = finfo_file($finfo, $file_name);
|
|
||||||
if ($mimetype === false) {
|
|
||||||
become404Page();
|
|
||||||
}
|
|
||||||
finfo_close($finfo);
|
|
||||||
|
|
||||||
header("X-Sendfile: $file_name");
|
|
||||||
header("Content-type: $mimetype");
|
|
||||||
header("Cache-Control: max-age=604800", true);
|
|
@ -412,7 +412,7 @@ $pag = new Paginator($pag_config);
|
|||||||
<?php foreach ($pag->get() as $idx => $row) : ?>
|
<?php foreach ($pag->get() as $idx => $row) : ?>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<img src="<?= $row['path'] ?>" class="card-img-top" height="200" style="object-fit: contain">
|
<img src="<?= $row['path'] ?>" class="card-img-top" height="200" style="object-fit: contain" loading="lazy" decoding="async">
|
||||||
<div class="card-footer bg-transparent small px-2">
|
<div class="card-footer bg-transparent small px-2">
|
||||||
<div class="d-flex flex-wrap justify-content-between">
|
<div class="d-flex flex-wrap justify-content-between">
|
||||||
<time><?= $row['upload_time'] ?></time>
|
<time><?= $row['upload_time'] ?></time>
|
||||||
@ -470,10 +470,6 @@ $pag = new Paginator($pag_config);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
|
||||||
[...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl));
|
|
||||||
});
|
|
||||||
|
|
||||||
var copy_url_toast = new bootstrap.Toast('#copy-url-toast', {
|
var copy_url_toast = new bootstrap.Toast('#copy-url-toast', {
|
||||||
delay: 2000
|
delay: 2000
|
||||||
});
|
});
|
@ -324,8 +324,8 @@ $solution_view_type_form->runAtServer();
|
|||||||
<h2 class="h3 card-title">提示</h2>
|
<h2 class="h3 card-title">提示</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li>请勿引用不稳定的外部资源(如来自个人服务器的图片或文档等),以便备份及后期维护;</li>
|
<li>请勿引用不稳定的外部资源(如来自个人服务器的图片或文档等),以便备份及后期维护;</li>
|
||||||
<li>请勿在题面中直接插入大段 HTML 代码,这可能会破坏页面的显示,可以考虑使用 <a class="text-decoration-none" href="/html2markdown" target="_blank">转换工具</a> 转换后再作修正;</li>
|
<li>请勿在题面中直接插入大段 HTML 代码,这可能会破坏页面的显示,可以考虑使用 <a class="text-decoration-none" href="/apps/html2markdown" target="_blank">转换工具</a> 转换后再作修正;</li>
|
||||||
<li>图片上传推荐使用 <a class="text-decoration-none" href="/image_hosting" target="_blank">S2OJ 图床</a>,以免后续产生外链图片大量失效的情况。</li>
|
<li>图片上传推荐使用 <a class="text-decoration-none" href="/apps/image_hosting" target="_blank">S2OJ 图床</a>,以免后续产生外链图片大量失效的情况。</li>
|
||||||
</ol>
|
</ol>
|
||||||
<p class="card-text">
|
<p class="card-text">
|
||||||
更多内容请查看 S2OJ 用户手册中的「<a class="text-decoration-none" href="https://s2oj.github.io/#/manage/problem?id=%e4%bc%a0%e9%a2%98%e6%8c%87%e5%bc%95">传题指引</a>」部分。
|
更多内容请查看 S2OJ 用户手册中的「<a class="text-decoration-none" href="https://s2oj.github.io/#/manage/problem?id=%e4%bc%a0%e9%a2%98%e6%8c%87%e5%bc%95">传题指引</a>」部分。
|
||||||
|
@ -107,8 +107,8 @@ $blog_editor->runAtServer();
|
|||||||
<ol>
|
<ol>
|
||||||
<li>题解发布后还需要返回对应题目的题解页面 <b>手动输入博客 ID</b> 来将本文添加到题目的题解列表中(博客 ID 可以在右上角找到);</li>
|
<li>题解发布后还需要返回对应题目的题解页面 <b>手动输入博客 ID</b> 来将本文添加到题目的题解列表中(博客 ID 可以在右上角找到);</li>
|
||||||
<li>请勿引用不稳定的外部资源(如来自个人服务器的图片或文档等),以便备份及后期维护;</li>
|
<li>请勿引用不稳定的外部资源(如来自个人服务器的图片或文档等),以便备份及后期维护;</li>
|
||||||
<li>请勿在博文中直接插入大段 HTML 代码,这可能会破坏页面的显示,可以考虑使用 <a class="text-decoration-none" href="/html2markdown" target="_blank">转换工具</a> 转换后再作修正;</li>
|
<li>请勿在博文中直接插入大段 HTML 代码,这可能会破坏页面的显示,可以考虑使用 <a class="text-decoration-none" href="/apps/html2markdown" target="_blank">转换工具</a> 转换后再作修正;</li>
|
||||||
<li>图片上传推荐使用 <a class="text-decoration-none" href="/image_hosting" target="_blank">S2OJ 图床</a>,以免后续产生外链图片大量失效的情况。</li>
|
<li>图片上传推荐使用 <a class="text-decoration-none" href="/apps/image_hosting" target="_blank">S2OJ 图床</a>,以免后续产生外链图片大量失效的情况。</li>
|
||||||
</ol>
|
</ol>
|
||||||
<p class="card-text">
|
<p class="card-text">
|
||||||
帮助:<a class="text-decoration-none" href="http://uoj.ac/blog/7">UOJ 博客使用教程</a>。
|
帮助:<a class="text-decoration-none" href="http://uoj.ac/blog/7">UOJ 博客使用教程</a>。
|
||||||
|
@ -91,9 +91,8 @@ Route::group(
|
|||||||
Route::any('/click-zan', '/click_zan.php');
|
Route::any('/click-zan', '/click_zan.php');
|
||||||
|
|
||||||
// Apps
|
// Apps
|
||||||
Route::any('/image_hosting', '/app/image_hosting/index.php');
|
Route::any('/apps/image_hosting', '/apps/image_hosting.php');
|
||||||
Route::get('/image_hosting/{image_name}.png', '/app/image_hosting/get_image.php');
|
Route::any('/apps/html2markdown', '/apps/html2markdown.php');
|
||||||
Route::any('/html2markdown', '/app/html2markdown.php');
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -111,13 +111,13 @@ mb-4" role="navigation">
|
|||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item" href="<?= HTML::url('/image_hosting') ?>">
|
<a class="dropdown-item" href="<?= HTML::url('/apps/image_hosting') ?>">
|
||||||
<i class="bi bi-images"></i>
|
<i class="bi bi-images"></i>
|
||||||
<?= UOJLocale::get('image hosting') ?>
|
<?= UOJLocale::get('image hosting') ?>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item" href="<?= HTML::url('/html2markdown') ?>">
|
<a class="dropdown-item" href="<?= HTML::url('/apps/html2markdown') ?>">
|
||||||
<i class="bi bi-markdown"></i>
|
<i class="bi bi-markdown"></i>
|
||||||
<?= UOJLocale::get('html to markdown') ?>
|
<?= UOJLocale::get('html to markdown') ?>
|
||||||
</a>
|
</a>
|
||||||
|
@ -44,7 +44,7 @@ if (!isset($ShowPageHeader)) {
|
|||||||
<title><?= isset($PageTitle) ? $PageTitle : UOJConfig::$data['profile']['oj-name-short'] ?> - <?= $PageMainTitle ?></title>
|
<title><?= isset($PageTitle) ? $PageTitle : UOJConfig::$data['profile']['oj-name-short'] ?> - <?= $PageMainTitle ?></title>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
uojHome = ''; // '<?= HTML::url('/') ?>'
|
uojHome = ''; // '<?= HTML::url('/') ?>';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<?php if (isset($REQUIRE_LIB['bootstrap5'])) : ?>
|
<?php if (isset($REQUIRE_LIB['bootstrap5'])) : ?>
|
||||||
@ -270,7 +270,7 @@ if (!isset($ShowPageHeader)) {
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script defer data-domain="sjzezoj.com" src="https://stat.u.sb/js/script.js"></script>
|
<script async data-domain="sjzezoj.com" src="https://stat.u.sb/js/script.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<?php if (isset($REQUIRE_LIB['bootstrap5'])) : ?>
|
<?php if (isset($REQUIRE_LIB['bootstrap5'])) : ?>
|
||||||
|
1
web/image_hosting
Symbolic link
1
web/image_hosting
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
app/storage/image_hosting
|
@ -49,7 +49,7 @@ setLAMPConf(){
|
|||||||
UOJEOF
|
UOJEOF
|
||||||
#Enable modules and make UOJ site conf enabled
|
#Enable modules and make UOJ site conf enabled
|
||||||
a2ensite 000-uoj.conf && a2dissite 000-default.conf
|
a2ensite 000-uoj.conf && a2dissite 000-default.conf
|
||||||
a2enmod rewrite headers && sed -i -e '172s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
|
a2enmod rewrite headers expires && sed -i -e '172s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
|
||||||
#Create UOJ session save dir and make PHP extensions available
|
#Create UOJ session save dir and make PHP extensions available
|
||||||
mkdir --mode=733 /var/lib/php/uoj_sessions && chmod +t /var/lib/php/uoj_sessions
|
mkdir --mode=733 /var/lib/php/uoj_sessions && chmod +t /var/lib/php/uoj_sessions
|
||||||
sed -i 's|;sys_temp_dir = "/tmp"|sys_temp_dir = "/tmp"|g' /etc/php/7.4/apache2/php.ini
|
sed -i 's|;sys_temp_dir = "/tmp"|sys_temp_dir = "/tmp"|g' /etc/php/7.4/apache2/php.ini
|
||||||
|
Loading…
Reference in New Issue
Block a user