(1.4-1.10)本周项目进展
一、课件详情页
包含标题、课程简介、标签、课件浏览和下载、评论功能。如图
本周主要是想解决课件的在线浏览功能,因为之前通过尝试,发现ppt没法直接在线预览,必须转化为别的文件格式,比如pdf,查阅很多博客资料,多数很难实现,代码复杂,最终觉得两个方式比较合适
1、付费网站http://view.xdocin.com/
此网站提供了直接将PPT转为pdf的功能,直接输“http://view.xdocin.com/xdoc?_xdoc=你的文档地址”即可,很快捷的方式,可惜收费。
2、在服务器上安装开源的LibreOffice
LibreOffice具备将office文件(PPT、word)转为pdf或html的功能,下面这篇随笔介绍的比较详细,https://www.cnblogs.com/qlqwjy/p/9846904.html
由于我不是root用户,无法在本项目服务器安装,但在同学服务器上可以实现。已经将它下载到var/local目录下。
二、上传页面,
除了基本的文本框填充外,主要实现了三个功能
1、 带*的为必填项,不填就上传会弹出提示
主要通过javascript实现
代码部分:
<script>
function validateForm(){
var x=document.forms["uploadform"]["file"].value;
var y=document.forms["uploadform"]["filename"].value;
var z=document.forms["uploadform"]["tags"].value;
var m=document.forms["uploadform"]["intro"].value;
if (x==null || x==""||y==null || y==""||z==null || z==""||m==null || m==""){
alert("带*的为必填项");
return false;
}
}
</script>
其中document.forms[‘exportServlet’].username.value的用法为获取表单为exportServlet,name为exportServlet的值,当有任何值为空时,弹出提示。
2、限制上传文件只能为ppt和pptx,并限制大小不能超过100M,否则弹出提示
主要通过代码实现(源码来自博客,自己看了几遍,大致懂怎么实现,但由于javascript还没入门,具体代码细节还没清楚)
代码部分:
<script type="text/javascript">
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
function fileChange(target, id) {
var fileSize = 0;
var filetypes = [ ".ppt", ".pptx"];
var filepath = target.value;
var filemaxsize = 1024 * 100;//2M
if (filepath) {
var isnext = false;
var fileend = filepath.substring(filepath.indexOf("."));
if (filetypes && filetypes.length > 0) {
for (var i = 0; i < filetypes.length; i++) {
if (filetypes[i] == fileend) {
isnext = true;
break;
}
}
}
if (!isnext) {
alert("不接受此文件类型!");
target.value = "";
return false;
}
} else{
return false;
}
if (isIE && !target.files) {
var filePath = target.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
if (!fileSystem.FileExists(filePath)) {
alert("附件不存在,请重新输入!");
return false;
}
var file = fileSystem.GetFile(filePath);
fileSize = file.Size;
} else{
fileSize = target.files[0].size;
}
var size = fileSize / 1024;
if (size > filemaxsize) {
alert("附件大小不能大于" + filemaxsize / 1024 + "M!");
target.value = "";
return false;
}
// if (size <= 100) {
// alert("附件大小不能为100M!");
// target.value = "";
// return false;
// }
}
</script>
3、年级选择功能
有预选值的下拉列表,利用html实现,预选值为“不限”,也就是说会默认必填。
<select name="grade" class="form-control">
<option value="noclass">不限</option>
<option value="primary">小学</option>
<option value="junior">初中</option>
<option value="high">高中</option>
</select>