首先Clone这个Repo
git clone https://github.com/LUNAD3v/areaload.git
我们喜欢Nginx,如果你用的是Nginx,那么在Nginx的全局(一般为/etc/nginx/nginx.conf)配置中,添加如下行
client_max_body_size 1000m;
PHP方面需要安装PDO,GD和sqlite3相关运行库。
由于Areaload追求的是轻量级,快速部署,我们使用了文件型数据库SQLite,为了防止数据库和学生上传的作业被通过HTTP的方式GET下来,记得在Nginx的Server Block中做一些配置。
location /db{
return 403;
}
location /upload{
return 403;
}
在/etc/php.ini中修改如下行:
upload_max_filesize = 1000M
在handler.php中加入可以上传的文件类型(默认只允许上传7z,rar,zip三种后缀的文件)
$FileType == "7z" || $FileType == "rar" || $FileType == "zip"
登录后台login.php,添加可以上传的学生列表。
部署工作到此为止。
AreaLoad通过课程ID和分类ID识别各个课程信息,出于防止恶意覆盖的情况发生,每门课程每个学生仅可以上传一次文件,所以,如果上传的文件有什么问题的话需要学生手动填写“申请重新上传”来通知管理员,管理员手动审核通过后让学生重新上传对应文件。
默认用户名为luna,密码为lunaareaload,登录后请修改密码。

在后台可以创建课程,AreaLoad通过课程ID和分类ID识别各个课程信息,课程ID和分类ID必须使用英文名称,不可包括空格,引号等字符

这样我们便创建了一个课程,分类关系为:/dev/areaload-dev,类似的,我们创建第二门课程,此时/dev(开发)分类下就会有两门课程:areaload-dev和ldbs-dev。学生上传的文件会分别位于:/upload/dev/areaload-dev和/upload/dev/ldbs-dev下。

只需点击“收作业”按钮即可!
收完作业后点一下“重置”,Areaload即可删除当前课程所有学生的上传数据,并为下一次上传作好准备。
如果学生需要重新上传作业的话,需要填写“申请重新上传”:

在后台会看到如下内容,假设学号为“631607040102”的学生有两次不同的课程需要申请重新上传,我们需要同意AreaLoad开发的重新上传,此时需要在下方的文本框中分别输入该同学的学号和对应课程的ID,此处分别填写“631607040102”和“areaload-dev”,然后点击“删除对应学号学生的上传数据”,之后用合适的方式通知他/她重新上传对应课程。

为了避免其他专业的学生在正经的平台上乱玩,Areaload默认只允许在Trustlist中包含的学号段的学生上传,通配符为"*"。
如:Trustlist中写的是"63160704****",则学号前缀为"63160704"的学生都可以上传。
