├── .gitattributes ├── .idea ├── .gitignore ├── codeStyles │ └── codeStyleConfig.xml ├── compiler.xml ├── dataSources.xml ├── encodings.xml ├── free-mybatis-generator-config.xml ├── inspectionProfiles │ └── Project_Default.xml ├── jarRepositories.xml ├── junitgenerator-prj-settings.xml ├── misc.xml ├── uiDesigner.xml └── vcs.xml ├── README.md ├── netdisc.iml ├── pom.xml └── src └── main ├── java └── com │ └── ssm │ ├── controller │ ├── FilesController.java │ ├── IndexController.java │ └── UserController.java │ ├── dao │ ├── FileDao.java │ ├── FiletypeDao.java │ ├── FolderDao.java │ └── UserDao.java │ ├── interceptor │ └── LoginInterceptor.java │ ├── pojo │ ├── File.java │ ├── FileType.java │ ├── FileUploadDownloadEntity.java │ ├── Folder.java │ ├── Recycle.java │ ├── Role.java │ └── User.java │ └── service │ ├── FileService.java │ ├── FileTypeService.java │ ├── FolderService.java │ ├── UserService.java │ └── impl │ ├── FileServiceImpl.java │ ├── FileTypeServiceImpl.java │ ├── FolderServiceImpl.java │ └── UserServiceImpl.java ├── resources ├── jdbc.properties ├── log4j.properties ├── mapper │ ├── FileMapper.xml │ ├── FiletypeMapper.xml │ ├── FolderMapper.xml │ └── UserMapper.xml ├── mybatis-config.xml └── spring │ ├── spring-dao.xml │ ├── spring-mvc.xml │ └── spring-service.xml └── webapp ├── WEB-INF ├── jsp │ ├── error.jsp │ ├── filedownload.jsp │ ├── fileupload.jsp │ ├── index.jsp │ ├── login.jsp │ ├── recycle.jsp │ └── register.jsp ├── resource │ ├── messages_en_US.properties │ └── messages_zh_CN.properties └── web.xml └── static ├── css ├── index.css ├── jquery │ ├── demo.css │ ├── easyui.css │ └── images │ │ ├── accordion_arrows.png │ │ ├── blank.gif │ │ ├── calendar_arrows.png │ │ ├── combo_arrow.png │ │ ├── datagrid_icons.png │ │ ├── datebox_arrow.png │ │ ├── layout_arrows.png │ │ ├── linkbutton_bg.png │ │ ├── loading.gif │ │ ├── menu_arrows.png │ │ ├── messager_icons.png │ │ ├── pagination_icons.png │ │ ├── panel_tools.png │ │ ├── passwordbox_close.png │ │ ├── passwordbox_open.png │ │ ├── searchbox_button.png │ │ ├── slider_handle.png │ │ ├── spinner_arrows.png │ │ ├── tabs_icons.png │ │ ├── tagbox_icons.png │ │ ├── tree_icons.png │ │ └── validatebox_warning.png ├── login.css └── register.css ├── images ├── Mobile-phone.png ├── ViewGallery.png ├── Viewlist.png ├── download.png ├── file.png ├── folder.png ├── folder1.png ├── foot_pic.jpg ├── huishouq.png ├── icon_1.png ├── icon_2.png ├── icons.png ├── login-1.png ├── loginBg.jpg ├── logo.png ├── person.jpg ├── phone.png ├── qst.png ├── search.png ├── sha.png └── share.png └── js ├── index.js ├── jquery ├── jquery.easyui.min.js └── jquery.min.js ├── login.js └── register.js /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=java 2 | *.css linguist-language=java 3 | *.html linguist-language=java 4 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/dataSources.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | mysql.8 6 | true 7 | com.mysql.cj.jdbc.Driver 8 | jdbc:mysql://localhost:3306/netdisc 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/free-mybatis-generator-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 80 | 81 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 36 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | -------------------------------------------------------------------------------- /.idea/junitgenerator-prj-settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # netdisc 2 | 基于ssm的私人云端网盘 注释已经补充完备 3 | ## 技术点 4 | ssm框架 log4j日志 druid连接池 lombok插件 fastjson 5 | ## 实现思路 6 | * 加密 7 | 用户密码使用md5加密 文件名使用uuid命名 8 | 9 | * 拦截器 10 | 拦截除了登录和注册的所有页面 11 | 12 | * 文件上传 13 | 使用uuid进行文件名保存,防止文件串用, 14 | hdfsPath存储文件的后半段路径 15 | 例如:/java/dbd5503e-0f0a-4820-87fe-4a1b2bc86f9e.docx 16 | 17 | * 下载文件 18 | 自动取回文件名命名后进行下载 19 | 20 | * 新建文件夹 21 | 会把目录信息插入数据库和在磁盘创建目录 22 | 23 | * 访问目录 24 | 文件目录间的层级关系由folder表中的parentId和file表中的folderId决定 25 | 例如: 10011目录(“目录名:次目录”)的parentId是10002目录(“目录名:主目录”) 26 | 则 10011目录(“目录名:次目录”) 位于 10002目录(“目录名:主目录”)下 27 | 文件同理 28 | 若parentId 或 folderId为空 则位于主目录(右上角会显示当前目录位置) 29 | 30 | * 搜索文件 31 | 会进行文件名和上传时间的模糊搜索 32 | 33 | * 文件和目录的删除 34 | 使用了ajax修改status值为0(默认是1 存在) 35 | 回收站会遍历所有status是0的文件和目录 36 | 回收站内再次删除则会删除数据库的数据和移除文件/目录 37 | 38 | -------------------------------------------------------------------------------- /netdisc.iml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 4.0.0 6 | 7 | com.ssm 8 | netdisc 9 | 1.0-SNAPSHOT 10 | war 11 | 12 | netdisc Maven Webapp 13 | 14 | http://www.example.com 15 | 16 | 17 | UTF-8 18 | 1.7 19 | 1.7 20 | UTF-8 21 | 5.0.3.RELEASE 22 | 3.4.4 23 | 24 | 25 | 26 | 27 | 28 | junit 29 | junit 30 | 4.11 31 | test 32 | 33 | 34 | 35 | 36 | org.springframework 37 | spring-core 38 | ${spring.version} 39 | 40 | 41 | org.springframework 42 | spring-beans 43 | ${spring.version} 44 | 45 | 46 | org.springframework 47 | spring-context 48 | ${spring.version} 49 | 50 | 51 | org.springframework 52 | spring-context-support 53 | ${spring.version} 54 | 55 | 56 | 57 | 58 | org.springframework 59 | spring-jdbc 60 | ${spring.version} 61 | 62 | 63 | org.springframework 64 | spring-tx 65 | ${spring.version} 66 | 67 | 68 | 69 | 70 | org.springframework 71 | spring-web 72 | ${spring.version} 73 | 74 | 75 | org.springframework 76 | spring-webmvc 77 | ${spring.version} 78 | 79 | 80 | org.springframework 81 | spring-test 82 | ${spring.version} 83 | 84 | 85 | 86 | 87 | javax.servlet 88 | javax.servlet-api 89 | 3.0.1 90 | provided 91 | 92 | 93 | javax.servlet.jsp 94 | jsp-api 95 | 2.2 96 | provided 97 | 98 | 99 | javax.servlet 100 | jstl 101 | 1.2 102 | 103 | 104 | taglibs 105 | standard 106 | 1.1.2 107 | 108 | 109 | com.alibaba 110 | fastjson 111 | 1.2.70 112 | 113 | 114 | 115 | 116 | 117 | mysql 118 | mysql-connector-java 119 | 5.1.38 120 | 121 | 122 | 123 | com.alibaba 124 | druid 125 | 1.0.9 126 | 127 | 128 | 129 | org.mybatis 130 | mybatis 131 | ${mybatis.version} 132 | 133 | 134 | 135 | org.mybatis 136 | mybatis-spring 137 | 1.3.1 138 | 139 | 140 | 141 | 142 | org.slf4j 143 | slf4j-log4j12 144 | 1.7.2 145 | 146 | 147 | 148 | 149 | org.projectlombok 150 | lombok 151 | 1.18.12 152 | provided 153 | 154 | 155 | 156 | 157 | commons-fileupload 158 | commons-fileupload 159 | 1.3.1 160 | 161 | 162 | commons-io 163 | commons-io 164 | 2.4 165 | 166 | 167 | 168 | 169 | 170 | netdisc 171 | 172 | 173 | 174 | maven-clean-plugin 175 | 3.1.0 176 | 177 | 178 | 179 | maven-resources-plugin 180 | 3.0.2 181 | 182 | 183 | maven-compiler-plugin 184 | 3.8.0 185 | 186 | 187 | maven-surefire-plugin 188 | 2.22.1 189 | 190 | 191 | maven-war-plugin 192 | 3.2.2 193 | 194 | 195 | maven-install-plugin 196 | 2.5.2 197 | 198 | 199 | maven-deploy-plugin 200 | 2.8.2 201 | 202 | 203 | 204 | 205 | 206 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/controller/FilesController.java: -------------------------------------------------------------------------------- 1 | package com.ssm.controller; 2 | 3 | import com.alibaba.fastjson.JSON; 4 | import com.ssm.pojo.FileType; 5 | import com.ssm.pojo.Folder; 6 | import com.ssm.pojo.User; 7 | import com.ssm.service.FileService; 8 | import com.ssm.service.FolderService; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.http.HttpHeaders; 11 | import org.springframework.http.HttpStatus; 12 | import org.springframework.http.MediaType; 13 | import org.springframework.http.ResponseEntity; 14 | import org.springframework.stereotype.Controller; 15 | import org.springframework.web.bind.annotation.RequestMapping; 16 | import org.springframework.web.bind.annotation.RequestParam; 17 | import org.springframework.web.bind.annotation.ResponseBody; 18 | import org.springframework.web.multipart.MultipartFile; 19 | 20 | import javax.servlet.http.HttpServletRequest; 21 | import javax.servlet.http.HttpServletResponse; 22 | import javax.servlet.http.HttpSession; 23 | import java.io.File; 24 | import java.io.FileInputStream; 25 | import java.io.IOException; 26 | import java.io.InputStream; 27 | import java.net.HttpURLConnection; 28 | import java.net.MalformedURLException; 29 | import java.net.URL; 30 | import java.text.SimpleDateFormat; 31 | import java.util.Date; 32 | import java.util.List; 33 | import java.util.UUID; 34 | 35 | /** 36 | * @program: netdisc 37 | * @description:文件控制 38 | * @author: Mr.Gu 39 | * @create: 2020-06-15 21:18 40 | **/ 41 | @Controller 42 | public class FilesController { 43 | 44 | private String filePath = "http://localhost:8080/netdisc"; 45 | private String localPath = "C:\\Users\\11469\\IdeaProjects\\community\\netdisc\\netdisc"; 46 | 47 | @Autowired 48 | private FileService fileService; 49 | 50 | @Autowired 51 | private FolderService folderService; 52 | 53 | 54 | /** 55 | * 彻底删除目录 56 | */ 57 | @RequestMapping("/removeFolder") 58 | @ResponseBody 59 | public String removeFolder(@RequestParam("folderId") int folderId){ 60 | int deleteFile = folderService.removeFolder(folderId); 61 | if(deleteFile!=0){ 62 | return JSON.toJSONString("success"); 63 | }else{ 64 | return JSON.toJSONString("failed"); 65 | } 66 | } 67 | 68 | /** 69 | * 彻底删除文件 70 | */ 71 | @RequestMapping("/remove") 72 | @ResponseBody 73 | public String remove(@RequestParam("fileId") int fileId){ 74 | int deleteFile = fileService.removeFile(fileId); 75 | if(deleteFile!=0){ 76 | return JSON.toJSONString("success"); 77 | }else{ 78 | return JSON.toJSONString("failed"); 79 | } 80 | } 81 | /** 82 | * flag删除目录 83 | */ 84 | @RequestMapping("/deleteFolder") 85 | @ResponseBody 86 | public String deleteFolder(@RequestParam("folderId") int folderId){ 87 | int deleteFile = folderService.deleteFolder(folderId); 88 | if(deleteFile!=0){ 89 | return JSON.toJSONString("success"); 90 | }else{ 91 | return JSON.toJSONString("failed"); 92 | } 93 | } 94 | 95 | 96 | /** 97 | * flag删除文件 98 | * @param fileId 99 | * @return 100 | */ 101 | @RequestMapping("/delete") 102 | @ResponseBody 103 | public String delete(@RequestParam("fileId") int fileId){ 104 | int deleteFile = fileService.deleteFile(fileId); 105 | if(deleteFile!=0){ 106 | return JSON.toJSONString("success"); 107 | }else{ 108 | return JSON.toJSONString("failed"); 109 | } 110 | } 111 | 112 | /** 113 | * 搜索文件 114 | */ 115 | @RequestMapping("/search") 116 | public String searchFile(String condition, HttpSession session){ 117 | //用户 118 | User user = (User) session.getAttribute("user"); 119 | List fileList = fileService.queryFileByCondition(condition,user.getUserid()); 120 | session.setAttribute("fileList", fileList); 121 | session.removeAttribute("folderList"); 122 | return "index"; 123 | } 124 | 125 | /** 126 | * 切换目录 127 | */ 128 | @RequestMapping("switchFolder") 129 | public String switchFolder(int folderid, String foldername, HttpSession session) { 130 | //用户 131 | User user = (User) session.getAttribute("user"); 132 | //查询目录下的的目录 133 | List folderList = folderService.queryFolderByFolder(folderid, user.getUserid()); 134 | session.setAttribute("folderList", folderList); 135 | //查询目录下的的文件 136 | List fileList = fileService.queryFileByFolder(folderid, user.getUserid()); 137 | session.setAttribute("fileList", fileList); 138 | //当前目录 139 | session.setAttribute("currentFolder", foldername); 140 | return "index"; 141 | } 142 | 143 | /** 144 | * 上传页面 145 | */ 146 | @RequestMapping("fileupload") 147 | public String fileupload() { 148 | return "fileupload"; 149 | } 150 | 151 | 152 | /** 153 | * 下载页面 154 | */ 155 | @RequestMapping("filedownload") 156 | public String filedownload() { 157 | return "filedownload"; 158 | } 159 | 160 | 161 | /** 162 | * 下载文件 163 | */ 164 | @RequestMapping(value = "download") 165 | public ResponseEntity download(HttpServletRequest request, HttpServletResponse response, @RequestParam("fileId") int fileId) throws IOException { 166 | //查询文件信息 167 | com.ssm.pojo.File fileById = fileService.queryFileById(fileId); 168 | File file = new File(localPath +fileById.getHdfspath()); 169 | //需要将文件转换为字节数组-将文件读取到字节数组 170 | //初始化文件读取流 171 | FileInputStream fis = new FileInputStream(file); 172 | //定义一个字节数组的长度与文件输入流读取的数据长度相同 173 | byte[] body = new byte[fis.available()]; 174 | fis.read(body); 175 | //设置头信息 +注意文件名转码 176 | HttpHeaders headers = new HttpHeaders(); 177 | headers.add("Content-Disposition", "attchement;filename=" + new String(fileById.getFilename().getBytes("GBK"), "ISO8859_1")); 178 | //封装到ResponseEntity 179 | ResponseEntity entity = new ResponseEntity(body, headers, HttpStatus.OK); 180 | return entity; 181 | 182 | } 183 | 184 | /** 185 | * 创建目录 186 | * 187 | * @param folderName 188 | * @param session 189 | * @return 190 | */ 191 | @RequestMapping("createFolder") 192 | public String createFolder(String folderName, HttpSession session) throws IOException { 193 | //当前目录 194 | String currentFolder = (String) session.getAttribute("currentFolder"); 195 | //根据目录名查目录id 196 | Folder folderByName = folderService.queryFolderByName(currentFolder); 197 | //文件夹信息 198 | Folder folder = new Folder(); 199 | folder.setFoldername(folderName); 200 | //父目录 201 | if (folderByName != null) { 202 | folder.setParentid(folderByName.getFolderid()); 203 | } 204 | //用户 205 | User user = (User) session.getAttribute("user"); 206 | folder.setUserid(user.getUserid()); 207 | //日期 208 | Date date = new Date(); 209 | SimpleDateFormat ft = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss"); 210 | folder.setCreatetime(ft.format(date)); 211 | folderService.insertFolder(folder); 212 | //创建目录 213 | File file = new File(localPath, folderName); 214 | if (!file.exists()) { 215 | file.mkdirs(); 216 | } 217 | return "/index"; 218 | } 219 | 220 | 221 | /** 222 | * 上传文件 223 | * 224 | * @param file 225 | * @param session 226 | * @return 227 | * @throws IOException 228 | */ 229 | @RequestMapping("upload") 230 | public String upload(@RequestParam("uploadFile") MultipartFile file, 231 | HttpSession session) throws IOException { 232 | //当前目录 233 | String currentFolder = (String) session.getAttribute("currentFolder"); 234 | //根据目录名查目录id 235 | Folder folderByName = folderService.queryFolderByName(currentFolder); 236 | //取文件后缀 237 | String filename = file.getOriginalFilename(); 238 | int suffixIndex = filename.lastIndexOf("."); 239 | String suffix = filename.substring(suffixIndex); 240 | //UUID加密 241 | UUID uuid = UUID.randomUUID(); 242 | String lastName = uuid + suffix; 243 | //映射地址 244 | String path = filePath + "/" + lastName; 245 | //映射地址+文件信息入库 246 | com.ssm.pojo.File depositFile = new com.ssm.pojo.File(); 247 | depositFile.setFilename(filename); 248 | //父目录 249 | if (folderByName != null) { 250 | depositFile.setFolderid(folderByName.getFolderid()); 251 | } 252 | //用户 253 | User user = (User) session.getAttribute("user"); 254 | depositFile.setUserid(user.getUserid()); 255 | //日期 256 | Date date = new Date(); 257 | SimpleDateFormat ft = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss"); 258 | depositFile.setCreatetime(ft.format(date)); 259 | //地址记录 260 | if (folderByName != null) { 261 | //不在根目录 262 | depositFile.setHdfspath( "\\" + folderByName.getFoldername() + "\\" + lastName); 263 | } else { 264 | depositFile.setHdfspath( "\\" + lastName); 265 | } 266 | //大小 267 | depositFile.setFilesize(file.getSize()); 268 | //入库 269 | fileService.insertFile(depositFile); 270 | //真实地址下载 271 | //是否在根目录 272 | if (folderByName != null) { 273 | //不在根目录 274 | String fileDir = localPath + "\\" + folderByName.getFoldername() + "\\" + lastName; 275 | File realFile = new File(fileDir); 276 | file.transferTo(realFile); 277 | } else { 278 | //在根目录 279 | File realFile = new File(localPath, lastName); 280 | file.transferTo(realFile); 281 | } 282 | return "/index"; 283 | } 284 | 285 | 286 | } 287 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/controller/IndexController.java: -------------------------------------------------------------------------------- 1 | package com.ssm.controller; 2 | 3 | import com.alibaba.fastjson.JSON; 4 | import com.ssm.dao.FiletypeDao; 5 | import com.ssm.dao.FolderDao; 6 | import com.ssm.pojo.File; 7 | import com.ssm.pojo.FileType; 8 | import com.ssm.pojo.Folder; 9 | import com.ssm.pojo.User; 10 | import com.ssm.service.FileService; 11 | import com.ssm.service.FileTypeService; 12 | import com.ssm.service.FolderService; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import org.springframework.stereotype.Controller; 15 | import org.springframework.ui.Model; 16 | import org.springframework.web.bind.annotation.RequestMapping; 17 | import org.springframework.web.bind.annotation.RequestParam; 18 | import org.springframework.web.bind.annotation.ResponseBody; 19 | import org.springframework.web.servlet.ModelAndView; 20 | import org.springframework.web.servlet.i18n.SessionLocaleResolver; 21 | 22 | import javax.servlet.http.HttpServletRequest; 23 | import javax.servlet.http.HttpServletResponse; 24 | import javax.servlet.http.HttpSession; 25 | import java.util.List; 26 | import java.util.Locale; 27 | import java.util.ResourceBundle; 28 | 29 | /** 30 | * @program: netdisc 31 | * @description:页面控制 32 | * @author: Mr.Gu 33 | * @create: 2020-06-15 16:17 34 | **/ 35 | @Controller 36 | public class IndexController { 37 | @Autowired 38 | private FileService fileService; 39 | 40 | @Autowired 41 | private FolderService folderService; 42 | 43 | @Autowired 44 | private FileTypeService fileTypeService; 45 | 46 | 47 | 48 | @RequestMapping("/error") 49 | public String error() throws Exception { 50 | throw new Exception("错误"); 51 | } 52 | 53 | 54 | @RequestMapping("/translate") 55 | public String translate(@RequestParam("local") String locale, HttpSession session) { 56 | if ("zh".equals(locale)) { 57 | Locale locale1 = new Locale("zh","CN"); 58 | session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale1); 59 | }else { 60 | Locale locale1 = new Locale("en","US"); 61 | session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale1); 62 | } 63 | return "index"; 64 | } 65 | 66 | /** 67 | * 管理主页 68 | * @param model 69 | * @param session 70 | * @return 71 | */ 72 | @RequestMapping("/index") 73 | public String index(Model model, HttpSession session) { 74 | User user = (User) session.getAttribute("user"); 75 | List fileTypes = fileTypeService.selectFileType(); 76 | session.setAttribute("sysFolderList",fileTypes); 77 | List folderList = folderService.queryFolder(user.getUserid()); 78 | session.setAttribute("folderList",folderList); 79 | List fileList = fileService.queryFile(user.getUserid()); 80 | session.setAttribute("fileList",fileList); 81 | //当前目录 82 | session.setAttribute("currentFolder",""); 83 | return "index"; 84 | } 85 | 86 | /** 87 | * 回收站页 88 | * @return 89 | */ 90 | @RequestMapping("/recycle") 91 | public String recycle(Model model, HttpSession session) { 92 | User user = (User) session.getAttribute("user"); 93 | //查询被删除的文件 94 | List fileList = fileService.queryRecycle(user.getUserid()); 95 | session.setAttribute("fileList",fileList); 96 | //查询被删除的目录 97 | List folderList = folderService.queryRecyclePath(user.getUserid()); 98 | session.setAttribute("folderList",folderList); 99 | return "recycle"; 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/controller/UserController.java: -------------------------------------------------------------------------------- 1 | package com.ssm.controller; 2 | 3 | import com.ssm.pojo.User; 4 | import com.ssm.service.UserService; 5 | import com.ssm.service.impl.UserServiceImpl; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Controller; 8 | import org.springframework.ui.Model; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RequestMethod; 11 | 12 | import javax.servlet.http.HttpSession; 13 | 14 | /** 15 | * @program: netdisc 16 | * @description:用户控制 17 | * @author: Mr.Gu 18 | * @create: 2020-06-15 15:44 19 | **/ 20 | @Controller 21 | public class UserController { 22 | @Autowired 23 | UserServiceImpl userService; 24 | 25 | /** 26 | * 登录页面 27 | * @return 28 | */ 29 | @RequestMapping(value = "/login",method = RequestMethod.GET) 30 | public String login() { 31 | return "login"; 32 | } 33 | 34 | /** 35 | * 注册页面 36 | * @return 37 | */ 38 | @RequestMapping(value = "/register",method = RequestMethod.GET) 39 | public String register() { 40 | return "register"; 41 | } 42 | 43 | /** 44 | * 用户注册 45 | * @param user 46 | * @param model 47 | * @param httpSession 48 | * @return 49 | */ 50 | @RequestMapping(value = "/register",method = RequestMethod.POST) 51 | public String userRegister(User user, Model model, HttpSession httpSession) { 52 | int existUser = userService.existUser(user); 53 | if (existUser == 0) { 54 | //不存在即注册 55 | int register = userService.register(user); 56 | if (register == 1) { 57 | //注册成功 58 | //查询完整用户信息 59 | User login = userService.login(user); 60 | httpSession.setAttribute("user", login); 61 | return "redirect:index"; 62 | } else { 63 | //注册失败 64 | model.addAttribute("msg", "注册失败"); 65 | return "register"; 66 | } 67 | } else { 68 | //用户已存在 69 | model.addAttribute("msg", "用户已存在"); 70 | return "register"; 71 | } 72 | } 73 | 74 | /** 75 | * 用户登录 76 | * @param user 77 | * @param model 78 | * @param httpSession 79 | * @return 80 | */ 81 | @RequestMapping(value = "/login",method = RequestMethod.POST) 82 | public String userLogin(User user, Model model, HttpSession httpSession) { 83 | User login = userService.login(user); 84 | if (login == null) { 85 | //登录失败 86 | model.addAttribute("msg", "登录失败"); 87 | return "login"; 88 | } else { 89 | //登录成功 90 | httpSession.setAttribute("user", login); 91 | return "redirect:index"; 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/dao/FileDao.java: -------------------------------------------------------------------------------- 1 | package com.ssm.dao; 2 | 3 | import com.ssm.pojo.File; 4 | import org.apache.ibatis.annotations.Param; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @program: netdisc 10 | * @description:文件持久 11 | * @author: Mr.Gu 12 | * @create: 2020-06-15 21:33 13 | **/ 14 | public interface FileDao { 15 | /** 16 | * 查询用户文件 17 | * @param userId 18 | * @return 19 | */ 20 | List queryFile(int userId); 21 | 22 | /** 23 | * 插入文件 24 | * @param file 25 | * @return 26 | */ 27 | int insertFile(File file); 28 | 29 | /** 30 | * 根据id查文件 31 | * @param fileId 32 | * @return 33 | */ 34 | File queryFileById(int fileId); 35 | 36 | /** 37 | * 根据目录和用户id查文件 38 | * @param folderId 39 | * @return 40 | */ 41 | List queryFileByFolder(@Param("folderid") int folderId,@Param("userId") int userId); 42 | /** 43 | * 根据名称查文件 44 | */ 45 | List queryFileByName(@Param("name") String name,@Param("userId") int userId); 46 | 47 | /** 48 | * 根据时间查文件 49 | */ 50 | List queryFileByTime(@Param("time") String time,@Param("userId") int userId); 51 | /** 52 | * flag删除 53 | */ 54 | int deleteFile(int fileId); 55 | /** 56 | * 查询所有删除的文件 57 | * @param userid 58 | * @return 59 | */ 60 | List queryRecycle(int userid); 61 | /** 62 | * 移除文件 63 | * @param fileId 64 | * @return 65 | */ 66 | int removeFile(int fileId); 67 | } 68 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/dao/FiletypeDao.java: -------------------------------------------------------------------------------- 1 | package com.ssm.dao; 2 | 3 | import com.ssm.pojo.FileType; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @program: netdisc 9 | * @description:文件类型持久 10 | * @author: Mr.Gu 11 | * @create: 2020-06-15 21:33 12 | **/ 13 | public interface FiletypeDao { 14 | /** 15 | * 查询所有文件类型 16 | * @return 17 | */ 18 | List selectAllFileType(); 19 | 20 | } -------------------------------------------------------------------------------- /src/main/java/com/ssm/dao/FolderDao.java: -------------------------------------------------------------------------------- 1 | package com.ssm.dao; 2 | 3 | import com.ssm.pojo.File; 4 | import com.ssm.pojo.Folder; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @program: netdisc 11 | * @description:文件夹持久 12 | * @author: Mr.Gu 13 | * @create: 2020-06-15 21:57 14 | **/ 15 | public interface FolderDao { 16 | /** 17 | * 根据用户id查询文件夹 18 | * @param userId 19 | * @return 20 | */ 21 | List queryFolder(int userId); 22 | 23 | /** 24 | * 插入文件夹 25 | * @param folder 26 | * @return 27 | */ 28 | int insertFolder(Folder folder); 29 | 30 | /** 31 | * 根据父目录id和用户id查询目录 32 | * @param folderid 33 | * @param userId 34 | * @return 35 | */ 36 | List queryFolderByFolder(@Param("folderId") int folderid,@Param("userId") int userId); 37 | 38 | /** 39 | * 根据目录名查目录信息 40 | * @param currentFolder 41 | * @return 42 | */ 43 | Folder queryFolderByName(String currentFolder); 44 | 45 | 46 | /** 47 | * 查询所有删除的目录 48 | * @param userid 49 | * @return 50 | */ 51 | List queryRecyclePath(int userid); 52 | 53 | /** 54 | * flag删除目录 55 | * @param folderId 56 | * @return 57 | */ 58 | int deleteFolder(int folderId); 59 | 60 | /** 61 | * 移除目录 62 | * @param folderId 63 | * @return 64 | */ 65 | int removeFolder(int folderId); 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/dao/UserDao.java: -------------------------------------------------------------------------------- 1 | package com.ssm.dao; 2 | 3 | import com.ssm.pojo.User; 4 | 5 | /** 6 | * @program: netdisc 7 | * @description:用户持久 8 | * @author: Mr.Gu 9 | * @create: 2020-06-15 17:02 10 | **/ 11 | public interface UserDao { 12 | /** 13 | * 注册 14 | * @param user 15 | * @return 16 | */ 17 | int register(User user); 18 | 19 | /** 20 | * 登录 21 | * @param user 22 | * @return 23 | */ 24 | User login(User user); 25 | 26 | /** 27 | * 是否存在 28 | * @param user 29 | * @return 30 | */ 31 | int existUser(User user); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/interceptor/LoginInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.ssm.interceptor; 2 | 3 | import org.springframework.web.servlet.HandlerInterceptor; 4 | import org.springframework.web.servlet.ModelAndView; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | import javax.servlet.http.HttpSession; 9 | 10 | /** 11 | * @program: netdisc 12 | * @description:登录校验拦截 13 | * @author: Mr.Gu 14 | * @create: 2020-06-15 20:49 15 | **/ 16 | public class LoginInterceptor implements HandlerInterceptor { 17 | @Override 18 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 19 | HttpSession session = request.getSession(); 20 | String requestURI = request.getRequestURI(); 21 | if(requestURI.equals("/register") || requestURI.equals("/login")){ 22 | //登录注册页面不校验 23 | return true; 24 | }else{ 25 | //进行用户名校验 26 | if(session.getAttribute("user")!=null){ 27 | //已登录 28 | return true; 29 | }else{ 30 | //未登录 31 | response.sendRedirect(request.getContextPath()+"/login"); 32 | return false; 33 | } 34 | 35 | } 36 | } 37 | 38 | @Override 39 | public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { 40 | 41 | } 42 | 43 | @Override 44 | public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { 45 | 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/pojo/File.java: -------------------------------------------------------------------------------- 1 | package com.ssm.pojo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 文件 9 | */ 10 | @Data 11 | public class File implements Serializable { 12 | //文件id 13 | private Integer fileid; 14 | //文件名 15 | private String filename; 16 | //所在目录id 17 | private Integer folderid; 18 | //文件类型 19 | private Integer typeid; 20 | //用户id 21 | private Integer userid; 22 | //创建时间 23 | private String createtime; 24 | 25 | private String owner; 26 | 27 | private Integer status; 28 | //所在地址 29 | private String hdfspath; 30 | //文件大小 31 | private Long filesize; 32 | 33 | private String mark; 34 | 35 | private static final long serialVersionUID = 1L; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/pojo/FileType.java: -------------------------------------------------------------------------------- 1 | package com.ssm.pojo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | /** 7 | * 文件类型 8 | */ 9 | @Data 10 | public class FileType implements Serializable { 11 | //文件类型id 12 | private Integer typeid; 13 | //文件类型名 14 | private String typename; 15 | 16 | private static final long serialVersionUID = 1L; 17 | 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/pojo/FileUploadDownloadEntity.java: -------------------------------------------------------------------------------- 1 | package com.ssm.pojo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class FileUploadDownloadEntity implements Serializable { 9 | 10 | private static final long serialVersionUID = -3441547917002724231L; 11 | // 文件名、下载路径、大小、进度、状态 12 | private String udName; 13 | private String udPath; 14 | private int udSize; 15 | private String udProcess; 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/pojo/Folder.java: -------------------------------------------------------------------------------- 1 | package com.ssm.pojo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | /** 7 | * 目录 8 | */ 9 | @Data 10 | public class Folder implements Serializable { 11 | //目录id 12 | private Integer folderid; 13 | //目录名 14 | private String foldername; 15 | 16 | private String hdfspath; 17 | //父目录id 18 | private Integer parentid; 19 | 20 | private String owner; 21 | //用户id 22 | private Integer userid; 23 | //创建时间 24 | private String createtime; 25 | 26 | private Integer status; 27 | 28 | private String mark; 29 | 30 | private static final long serialVersionUID = 1L; 31 | 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/pojo/Recycle.java: -------------------------------------------------------------------------------- 1 | package com.ssm.pojo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class Recycle implements Serializable { 9 | 10 | private static final long serialVersionUID = -568683577778696440L; 11 | private int fileId; 12 | private String fileName; 13 | private int folderId; 14 | private int typeId; 15 | private int userId; 16 | private String deleteTime; 17 | private String owner; 18 | private int status; 19 | private String hdfsPath; 20 | private int fileSize; 21 | private String mark; 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/pojo/Role.java: -------------------------------------------------------------------------------- 1 | package com.ssm.pojo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class Role implements Serializable{ 9 | 10 | private static final long serialVersionUID = -6252969741749690678L; 11 | 12 | private int roleId; 13 | private String roleName; 14 | private int status; 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/pojo/User.java: -------------------------------------------------------------------------------- 1 | package com.ssm.pojo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | /** 7 | * 用户 8 | */ 9 | @Data 10 | public class User implements Serializable { 11 | //用户id 12 | private Integer userid; 13 | //用户名 14 | private String username; 15 | //用户密码 16 | private String password; 17 | //手机号 18 | private String telephone; 19 | //邮箱 20 | private String email; 21 | 22 | private Integer roleid; 23 | 24 | private String isvip; 25 | 26 | private Integer status; 27 | 28 | private static final long serialVersionUID = 1L; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/service/FileService.java: -------------------------------------------------------------------------------- 1 | package com.ssm.service; 2 | 3 | import com.ssm.pojo.File; 4 | import com.ssm.pojo.Folder; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @program: netdisc 11 | * @description: 12 | * @author: Mr.Gu 13 | * @create: 2020-06-15 21:40 14 | **/ 15 | public interface FileService { 16 | List queryFile(int userId); 17 | int insertFile(File file); 18 | File queryFileById(int fileId); 19 | List queryFileByFolder(int folderid, int userId); 20 | 21 | // List queryFileByName(String Name); 22 | // 23 | // List queryFileByTime(String Time); 24 | 25 | List queryFileByCondition(String condition,int userId); 26 | 27 | int deleteFile(int fileId); 28 | 29 | List queryRecycle(int userid); 30 | 31 | int removeFile(int fileId); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/service/FileTypeService.java: -------------------------------------------------------------------------------- 1 | package com.ssm.service; 2 | 3 | import com.ssm.pojo.FileType; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @program: netdisc 9 | * @description: 10 | * @author: Mr.Gu 11 | * @create: 2020-06-16 18:37 12 | **/ 13 | public interface FileTypeService { 14 | List selectFileType(); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/service/FolderService.java: -------------------------------------------------------------------------------- 1 | package com.ssm.service; 2 | 3 | import com.ssm.pojo.Folder; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @program: netdisc 9 | * @description: 10 | * @author: Mr.Gu 11 | * @create: 2020-06-15 22:01 12 | **/ 13 | public interface FolderService { 14 | List queryFolder(int userId); 15 | int insertFolder(Folder folder); 16 | List queryFolderByFolder(int folderid, int userid); 17 | 18 | Folder queryFolderByName(String currentFolder); 19 | List queryRecyclePath(int userid); 20 | 21 | int deleteFolder(int folderId); 22 | 23 | int removeFolder(int folderId); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.ssm.service; 2 | 3 | import com.ssm.pojo.User; 4 | 5 | /** 6 | * @program: netdisc 7 | * @description: 8 | * @author: Mr.Gu 9 | * @create: 2020-06-15 17:01 10 | **/ 11 | public interface UserService { 12 | int register(User user); 13 | User login(User user); 14 | int existUser(User user); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/service/impl/FileServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.ssm.service.impl; 2 | 3 | import com.ssm.dao.FileDao; 4 | import com.ssm.pojo.File; 5 | import com.ssm.service.FileService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.transaction.annotation.Transactional; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @program: netdisc 14 | * @description:文件服务 15 | * @author: Mr.Gu 16 | * @create: 2020-06-15 21:41 17 | **/ 18 | @Service 19 | public class FileServiceImpl implements FileService { 20 | @Autowired 21 | private FileDao fileDao; 22 | 23 | /** 24 | * 查询用户的文件 25 | * @param userId 26 | * @return 27 | */ 28 | @Override 29 | public List queryFile(int userId) { 30 | return fileDao.queryFile(userId); 31 | } 32 | 33 | /** 34 | * 插入文件 35 | * @param file 36 | * @return 37 | */ 38 | @Override 39 | public int insertFile(File file) { 40 | return fileDao.insertFile(file); 41 | } 42 | 43 | /** 44 | * 根据文件id查文件 45 | * @param fileId 46 | * @return 47 | */ 48 | @Override 49 | public File queryFileById(int fileId) { 50 | return fileDao.queryFileById(fileId); 51 | } 52 | 53 | /** 54 | * 根据目录和用户id查文件 55 | * @param 56 | * @return 57 | */ 58 | @Override 59 | public List queryFileByFolder(int folderid,int userId) { 60 | return fileDao.queryFileByFolder(folderid,userId); 61 | } 62 | 63 | /** 64 | * 根据名称查文件 65 | * @param Name 66 | * @return 67 | */ 68 | // @Override 69 | // public List queryFileByName(String Name) { 70 | // return fileDao.queryFileByName(Name); 71 | // } 72 | 73 | /** 74 | * 根据时间查文件 75 | * @param Time 76 | * @return 77 | */ 78 | // @Override 79 | // public List queryFileByTime(String Time) { 80 | // return fileDao.queryFileByTime(Time); 81 | // } 82 | 83 | /** 84 | * 根据两个条件查询 85 | * @param condition 86 | * @return 87 | */ 88 | @Override 89 | @Transactional 90 | public List queryFileByCondition(String condition,int userId) { 91 | List fileList = fileDao.queryFileByName(condition,userId); 92 | List fileListOther = fileDao.queryFileByTime(condition,userId); 93 | fileList.addAll(fileListOther); 94 | return fileList; 95 | } 96 | 97 | /** 98 | * flag删除 99 | * @param fileId 100 | * @return 101 | */ 102 | @Override 103 | public int deleteFile(int fileId) { 104 | return fileDao.deleteFile(fileId); 105 | } 106 | 107 | /** 108 | * 查询所有删除的文件 109 | * @param userid 110 | * @return 111 | */ 112 | @Override 113 | public List queryRecycle(int userid) { 114 | return fileDao.queryRecycle(userid); 115 | } 116 | 117 | /** 118 | * 移除文件 119 | * @param fileId 120 | * @return 121 | */ 122 | @Override 123 | public int removeFile(int fileId) { 124 | return fileDao.removeFile(fileId); 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/service/impl/FileTypeServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.ssm.service.impl; 2 | 3 | import com.ssm.dao.FiletypeDao; 4 | import com.ssm.pojo.FileType; 5 | import com.ssm.service.FileTypeService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @program: netdisc 13 | * @description:文件类型服务 14 | * @author: Mr.Gu 15 | * @create: 2020-06-16 18:37 16 | **/ 17 | @Service 18 | public class FileTypeServiceImpl implements FileTypeService { 19 | @Autowired 20 | private FiletypeDao filetypeDao; 21 | 22 | /** 23 | * 查询所有文件类型 24 | * @return 25 | */ 26 | @Override 27 | public List selectFileType() { 28 | return filetypeDao.selectAllFileType(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/service/impl/FolderServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.ssm.service.impl; 2 | 3 | import com.ssm.dao.FolderDao; 4 | import com.ssm.pojo.Folder; 5 | import com.ssm.service.FolderService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @program: netdisc 13 | * @description:文件夹服务 14 | * @author: Mr.Gu 15 | * @create: 2020-06-15 22:01 16 | **/ 17 | @Service 18 | public class FolderServiceImpl implements FolderService { 19 | @Autowired 20 | private FolderDao folderDao; 21 | 22 | /** 23 | * 查询用户目录 24 | * @param userId 25 | * @return 26 | */ 27 | @Override 28 | public List queryFolder(int userId) { 29 | return folderDao.queryFolder(userId); 30 | } 31 | 32 | /** 33 | * 插入目录 34 | * @param folder 35 | * @return 36 | */ 37 | @Override 38 | public int insertFolder(Folder folder) { 39 | return folderDao.insertFolder(folder); 40 | } 41 | 42 | /** 43 | * 根据目录和用户id查目录 44 | * @param 45 | * @param userid 46 | * @return 47 | */ 48 | @Override 49 | public List queryFolderByFolder(int folderid, int userid) { 50 | return folderDao.queryFolderByFolder(folderid,userid); 51 | } 52 | 53 | /** 54 | * 根据名字查目录 55 | * @param currentFolder 56 | * @return 57 | */ 58 | @Override 59 | public Folder queryFolderByName(String currentFolder) { 60 | return folderDao.queryFolderByName(currentFolder); 61 | } 62 | 63 | /** 64 | * 查询删除的目录 65 | * @param userid 66 | * @return 67 | */ 68 | @Override 69 | public List queryRecyclePath(int userid) { 70 | return folderDao.queryRecyclePath(userid); 71 | } 72 | 73 | /** 74 | * flag删除目录 75 | * @param folderId 76 | * @return 77 | */ 78 | @Override 79 | public int deleteFolder(int folderId) { 80 | return folderDao.deleteFolder(folderId); 81 | } 82 | 83 | /** 84 | * 移除目录 85 | * @param folderId 86 | * @return 87 | */ 88 | @Override 89 | public int removeFolder(int folderId) { 90 | return folderDao.removeFolder(folderId); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/main/java/com/ssm/service/impl/UserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.ssm.service.impl; 2 | 3 | import com.ssm.dao.UserDao; 4 | import com.ssm.pojo.User; 5 | import com.ssm.service.UserService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @program: netdisc 11 | * @description:用户服务 12 | * @author: Mr.Gu 13 | * @create: 2020-06-15 17:01 14 | **/ 15 | @Service 16 | public class UserServiceImpl implements UserService { 17 | @Autowired 18 | UserDao userDao; 19 | 20 | /** 21 | * 注册 22 | * @param user 23 | * @return 24 | */ 25 | @Override 26 | public int register(User user) { 27 | return userDao.register(user); 28 | } 29 | 30 | /** 31 | * 登录 32 | * @param user 33 | * @return 34 | */ 35 | @Override 36 | public User login(User user) { 37 | return userDao.login(user); 38 | } 39 | 40 | /** 41 | * 是否存在 42 | * @param user 43 | * @return 44 | */ 45 | @Override 46 | public int existUser(User user) { 47 | return userDao.existUser(user); 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/resources/jdbc.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/resources/jdbc.properties -------------------------------------------------------------------------------- /src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /src/main/resources/mapper/FileMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | insert into cd_file (fileName, folderId, typeId, 25 | userId, createTime, `owner`, 26 | `status`, hdfsPath, fileSize, 27 | mark) 28 | values (#{filename,jdbcType=VARCHAR}, #{folderid,jdbcType=INTEGER}, #{typeid,jdbcType=INTEGER}, 29 | #{userid,jdbcType=INTEGER}, #{createtime,jdbcType=VARCHAR}, #{owner,jdbcType=VARCHAR}, 30 | 1, #{hdfspath,jdbcType=VARCHAR}, #{filesize,jdbcType=BIGINT}, 31 | #{mark,jdbcType=VARCHAR}) 32 | 33 | 34 | 37 | 38 | 41 | 42 | 45 | 46 | 49 | 50 | 51 | update cd_file set status = 0 where fileId = #{fileId} 52 | 53 | 54 | 57 | 58 | 59 | DELETE FROM cd_file WHERE fileId=#{fileId}; 60 | 61 | -------------------------------------------------------------------------------- /src/main/resources/mapper/FiletypeMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | typeid, typename 10 | 11 | 14 | -------------------------------------------------------------------------------- /src/main/resources/mapper/FolderMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 | 21 | 22 | insert into cd_folder (folderName, hdfsPath, parentId, 23 | `owner`, userId, createTime, 24 | `status`, mark) 25 | values (#{foldername,jdbcType=VARCHAR}, #{hdfspath,jdbcType=VARCHAR}, #{parentid,jdbcType=INTEGER}, 26 | #{owner,jdbcType=VARCHAR}, #{userid,jdbcType=INTEGER}, #{createtime,jdbcType=VARCHAR}, 27 | 1, #{mark,jdbcType=VARCHAR}) 28 | 29 | 30 | 33 | 34 | 37 | 38 | 41 | 42 | 43 | update cd_folder set status = 0 where folderId = #{folderId} 44 | 45 | 46 | 47 | DELETE FROM cd_folder WHERE folderId=#{folderId}; 48 | 49 | -------------------------------------------------------------------------------- /src/main/resources/mapper/UserMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | insert into cd_user (userId, userName, `password`, 18 | telephone, email, roleId, 19 | isVip, `status`) 20 | values (#{userid,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 21 | #{telephone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{roleid,jdbcType=INTEGER}, 22 | #{isvip,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}) 23 | 24 | 27 | 30 | -------------------------------------------------------------------------------- /src/main/resources/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/main/resources/spring/spring-dao.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /src/main/resources/spring/spring-mvc.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 58 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /src/main/resources/spring/spring-service.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=GBK" 2 | pageEncoding="utf-8"%> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> 4 | <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 5 | <% 6 | String path = request.getContextPath(); 7 | String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 8 | %> 9 | 10 | 11 | 12 | 13 | 14 | DefaultExceptionPage 15 | 16 | 17 | ERROR! DefaultExceptionPage
18 | message: 19 | 20 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/filedownload.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8" isELIgnored="false"%> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4 | <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> 5 | <% 6 | String path = request.getContextPath(); 7 | String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path; 8 | %> 9 | 10 | 11 | 12 | 云端网盘 13 | 14 | 15 | 16 | 46 | 47 | 48 |
49 |
50 | 69 |
70 |
71 |
72 |
73 |
74 | 上传 75 |
76 |
77 | 新建文件夹 78 |
79 |
80 |
81 |
82 | 83 | 84 | 85 | 86 | 87 |
全部文件已加载全部,共10个
88 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 |
文件名下载路径大小进度状态
98 |
99 |
100 |
101 |
102 |
103 |
105 | 107 |
108 | 109 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/fileupload.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8" isELIgnored="false"%> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4 | <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> 5 | <% 6 | String path = request.getContextPath(); 7 | String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path; 8 | %> 9 | 10 | 11 | 12 | 13 | 云端网盘 14 | 15 | 16 | 17 | 48 | 49 | 50 |
51 |
52 | 72 |
73 |
74 |
75 |
76 |
77 | 上传 78 |
79 |
80 | 新建文件夹 81 |
82 |
83 |
84 |
85 | 86 | 87 | 88 | 89 | 90 |
全部文件已加载全部,共10个
91 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 |
文件名上传路径大小进度状态
101 |
102 |
103 |
104 |
105 |
106 |
108 | 110 |
111 | 112 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page import="com.ssm.pojo.User"%> 2 | <%@ page language="java" contentType="text/html; charset=UTF-8" 3 | pageEncoding="UTF-8" isELIgnored="false"%> 4 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 5 | <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> 6 | <%--<%@ taglib prefix="spring" uri="http://java.sun.com/jsp/jstl/fmt" %>--%> 7 | <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 8 | <% 9 | String path = request.getContextPath(); 10 | String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path; 11 | %> 12 | 13 | 14 | 15 | <spring:message code="TITLE"/> 16 | 17 | 18 | <%----%> 19 | 20 | 21 | 22 | 23 | 66 | 67 | 68 |
69 |
70 | 103 |
104 |
105 | 119 |
120 |
121 |
显示全部
122 | 124 |
125 |
126 |
127 | 上传 128 |
129 |
130 | 新建文件夹 132 |
133 |
134 | 离线下载 135 |
136 |
137 | 我的设备 138 |
139 |
140 |
141 | 147 |
148 |
149 |
150 |
151 | 152 | 153 | 154 | 155 | 156 | 157 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 175 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 187 | 191 | 192 | 193 | 194 | 195 | 196 |
全部文件已加载全部,共${fn:length(sessionScope.folderList)+fn:length(sessionScope.fileList) }个
文件名类型大小修改日期
166 |
167 | 168 | 169 | 171 | 173 |
174 |
目录-
文件
197 |
198 |
199 |
200 |
201 |
202 | 203 |
206 |
207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 |
请输入文件夹名称:
218 |
219 |
220 |
222 | 224 |
225 | 226 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/login.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8" isELIgnored="false" %> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 4 | <% 5 | String path = request.getContextPath(); 6 | String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path; 7 | %> 8 | 9 | 10 | 11 | 12 | 云端网盘登录 13 | 14 | 15 | 16 | 17 |
18 | 63 |
64 |
    65 |
  • 66 |
  • 67 |
  • 68 |
  • 69 |
  • 70 |
71 |
72 |
73 | 74 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/recycle.jsp: -------------------------------------------------------------------------------- 1 | <%@ page import="com.ssm.pojo.User"%> 2 | <%@ page language="java" contentType="text/html; charset=UTF-8" 3 | pageEncoding="UTF-8" isELIgnored="false"%> 4 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 5 | <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> 6 | <% 7 | String path = request.getContextPath(); 8 | String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path; 9 | %> 10 | 11 | 12 | 13 | 云端网盘 14 | 15 | 16 | <%----%> 17 | 18 | 19 | 20 | 21 | 64 | 65 | 66 |
67 |
68 | 88 |
89 |
90 | 104 |
105 |
106 |
显示全部
107 | 109 |
110 |
111 |
112 | 上传 113 |
114 |
115 | 新建文件夹 117 |
118 |
119 | 离线下载 120 |
121 |
122 | 我的设备 123 |
124 |
125 |
126 | 129 |
130 |
131 |
132 |
133 | 134 | 135 | 136 | 137 | 138 | 139 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 151 | 154 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 166 | 170 | 171 | 172 | 173 | 174 | 175 |
全部文件已加载全部,共${fn:length(sessionScope.folderList)+fn:length(sessionScope.fileList) }个
文件名类型大小修改日期
目录-
文件
176 |
177 |
178 |
179 |
180 |
181 | 182 |
185 |
186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 |
请输入文件夹名称:
196 |
197 |
198 | 199 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/register.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=UTF-8" 2 | pageEncoding="UTF-8" isELIgnored="false" %> 3 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 4 | <% 5 | String path = request.getContextPath(); 6 | String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path; 7 | %> 8 | 9 | 10 | 11 | 12 | 注册云端网盘账号 13 | 14 | 15 | 16 | 17 |
18 |
19 |
20 |
21 | 注册云端网盘账号 23 |
24 |
25 | 已有账号 29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
38 |
39 | 用户名称: 41 |
42 |
43 | 手机号码: 45 |
46 |
47 | 电子邮箱: 49 |
50 |
51 | 用户密码: 53 |
54 |
55 | 确认密码: 57 |
58 |
59 | 接受并阅读《QST用户协议》 60 |
61 |
62 | 63 |
64 |

${msg}

65 |
66 |
67 |
68 |
69 |
70 | 手机快速注册 71 |
72 |
73 |

请使用中国大陆手机号,编辑短信:

74 |

6-14位字符(支持数字/字母/符号)

75 |
76 |
77 |

作为登录密码,发送至:

78 |

1232 2312 23212

79 |

即可注册成功,手机号即为登录号

80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | 88 |
89 |
90 | 91 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/resource/messages_en_US.properties: -------------------------------------------------------------------------------- 1 | TITLE = CloudDisk 2 | wp = Reticulum 3 | fx = Share 4 | zzsc = Uploading 5 | zzxz = Downloading 6 | dqml = CurrentDirectory 7 | khdxz = ClientDownload 8 | hyzx = VIPCenter -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/resource/messages_zh_CN.properties: -------------------------------------------------------------------------------- 1 | TITLE = \u4e91\u7aef\u7f51\u76d8 2 | wp = \u7f51\u76d8 3 | fx = \u5206\u4eab 4 | zzsc = \u6b63\u5728\u4e0a\u4f20 5 | zzxz = \u6b63\u5728\u4e0b\u8f7d 6 | dqml = \u5f53\u524d\u76ee\u5f55 7 | khdxz = \u5ba2\u6237\u7aef\u4e0b\u8f7d 8 | hyzx = \u4f1a\u5458\u4e2d\u5fc3 -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 9 | Archetype Created Web Application 10 | 11 | dispatcher 12 | org.springframework.web.servlet.DispatcherServlet 13 | 17 | 18 | contextConfigLocation 19 | classpath:spring/spring-*.xml 20 | 21 | 1 22 | 23 | 24 | dispatcher 25 | 26 | / 27 | 28 | 29 | encodingFilter 30 | 31 | org.springframework.web.filter.CharacterEncodingFilter 32 | 33 | 34 | encoding 35 | utf-8 36 | 37 | 38 | 39 | 40 | encodingFilter 41 | /* 42 | 43 | 44 | 45 | 46 | 47 | default 48 | /static/* 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/main/webapp/static/css/index.css: -------------------------------------------------------------------------------- 1 | @media -sass-debug-info { 2 | filename { 3 | font-family: 4 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 5 | } 6 | line { 7 | font-family: \000032 8 | } 9 | } 10 | 11 | * { 12 | padding: 0; 13 | margin: 0; 14 | } 15 | 16 | @media -sass-debug-info { 17 | filename { 18 | font-family: 19 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 20 | } 21 | line { 22 | font-family: \000036 23 | } 24 | } 25 | 26 | li { 27 | list-style: none; 28 | } 29 | 30 | @media -sass-debug-info { 31 | filename { 32 | font-family: 33 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 34 | } 35 | line { 36 | font-family: \000037 37 | } 38 | } 39 | 40 | a { 41 | text-decoration: none; 42 | } 43 | 44 | @media -sass-debug-info { 45 | filename { 46 | font-family: 47 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 48 | } 49 | line { 50 | font-family: \000038 51 | } 52 | } 53 | 54 | body { 55 | background: #EFF4F8; 56 | } 57 | 58 | @media -sass-debug-info { 59 | filename { 60 | font-family: 61 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 62 | } 63 | line { 64 | font-family: \0000310 65 | } 66 | } 67 | 68 | body #index { 69 | width: 100%; 70 | } 71 | 72 | @media -sass-debug-info { 73 | filename { 74 | font-family: 75 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 76 | } 77 | line { 78 | font-family: \0000312 79 | } 80 | } 81 | 82 | body #index .cloud { 83 | padding-left: 40px; 84 | padding-right: 40px; 85 | } 86 | 87 | @media -sass-debug-info { 88 | filename { 89 | font-family: 90 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 91 | } 92 | line { 93 | font-family: \0000315 94 | } 95 | } 96 | 97 | body #index .cloud .banner { 98 | height: 60px; 99 | line-height: 60px; 100 | } 101 | 102 | @media -sass-debug-info { 103 | filename { 104 | font-family: 105 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 106 | } 107 | line { 108 | font-family: \0000318 109 | } 110 | } 111 | 112 | body #index .cloud .banner div { 113 | float: left; 114 | } 115 | 116 | @media -sass-debug-info { 117 | filename { 118 | font-family: 119 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 120 | } 121 | line { 122 | font-family: \0000322 123 | } 124 | } 125 | 126 | body #index .cloud .banner .bannerLeft span { 127 | display: inline-block; 128 | float: left; 129 | } 130 | 131 | @media -sass-debug-info { 132 | filename { 133 | font-family: 134 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 135 | } 136 | line { 137 | font-family: \0000326 138 | } 139 | } 140 | 141 | body #index .cloud .banner .bannerLeft .logoBg { 142 | width: 90px; 143 | height: 60px; 144 | background: url("../images/logo.png") no-repeat; 145 | background-position: 0 16px; 146 | margin-right: 10px; 147 | } 148 | 149 | @media -sass-debug-info { 150 | filename { 151 | font-family: 152 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 153 | } 154 | line { 155 | font-family: \0000334 156 | } 157 | } 158 | 159 | body #index .cloud .banner .bannerCenter { 160 | margin-left: 20px; 161 | } 162 | 163 | @media -sass-debug-info { 164 | filename { 165 | font-family: 166 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 167 | } 168 | line { 169 | font-family: \0000336 170 | } 171 | } 172 | 173 | body #index .cloud .banner .bannerCenter ul { 174 | margin-top: 10px; 175 | height: 40px; 176 | line-height: 40px; 177 | } 178 | 179 | @media -sass-debug-info { 180 | filename { 181 | font-family: 182 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 183 | } 184 | line { 185 | font-family: \0000340 186 | } 187 | } 188 | 189 | body #index .cloud .banner .bannerCenter ul li { 190 | float: left; 191 | margin-left: 50px; 192 | font-size: 16px; 193 | cursor: pointer; 194 | } 195 | 196 | @media -sass-debug-info { 197 | filename { 198 | font-family: 199 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 200 | } 201 | line { 202 | font-family: \0000345 203 | } 204 | } 205 | 206 | body #index .cloud .banner .bannerCenter ul li:hover { 207 | border-bottom: 4px solid #3B8CFF; 208 | color: #3B8CFF; 209 | border-radius: 2px; 210 | } 211 | 212 | @media -sass-debug-info { 213 | filename { 214 | font-family: 215 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 216 | } 217 | line { 218 | font-family: \0000351 219 | } 220 | } 221 | 222 | body #index .cloud .banner .bannerCenter ul .active { 223 | border-bottom: 4px solid #3B8CFF; 224 | color: #3B8CFF; 225 | border-radius: 2px; 226 | } 227 | 228 | @media -sass-debug-info { 229 | filename { 230 | font-family: 231 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 232 | } 233 | line { 234 | font-family: \0000358 235 | } 236 | } 237 | 238 | body #index .cloud .banner .bannerRight { 239 | float: right; 240 | } 241 | 242 | @media -sass-debug-info { 243 | filename { 244 | font-family: 245 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 246 | } 247 | line { 248 | font-family: \0000360 249 | } 250 | } 251 | 252 | body #index .cloud .banner .bannerRight span { 253 | display: inline-block; 254 | float: left; 255 | height: 60px; 256 | line-height: 60px; 257 | font-size: 14px; 258 | } 259 | 260 | @media -sass-debug-info { 261 | filename { 262 | font-family: 263 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 264 | } 265 | line { 266 | font-family: \0000367 267 | } 268 | } 269 | 270 | body #index .cloud .banner .bannerRight .person { 271 | width: 40px; 272 | height: 40px; 273 | border: 1px solid #D7DBDF; 274 | border-radius: 20px; 275 | overflow: hidden; 276 | margin-top: 10px; 277 | margin-right: 20px; 278 | } 279 | 280 | @media -sass-debug-info { 281 | filename { 282 | font-family: 283 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 284 | } 285 | line { 286 | font-family: \0000375 287 | } 288 | } 289 | 290 | body #index .cloud .banner .bannerRight .person img { 291 | width: 100%; 292 | } 293 | 294 | @media -sass-debug-info { 295 | filename { 296 | font-family: 297 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 298 | } 299 | line { 300 | font-family: \0000379 301 | } 302 | } 303 | 304 | body #index .cloud .banner .bannerRight .center { 305 | width: 80px; 306 | height: 30px; 307 | line-height: 30px; 308 | background: #F8645C; 309 | color: #fff; 310 | border-radius: 15px; 311 | text-align: center; 312 | margin-top: 15px; 313 | margin-left: 20px; 314 | cursor: pointer; 315 | } 316 | 317 | @media -sass-debug-info { 318 | filename { 319 | font-family: 320 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 321 | } 322 | line { 323 | font-family: \0000393 324 | } 325 | } 326 | 327 | body #index .cloud .content { 328 | margin-top: 10px; 329 | } 330 | 331 | @media -sass-debug-info { 332 | filename { 333 | font-family: 334 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 335 | } 336 | line { 337 | font-family: \0000395 338 | } 339 | } 340 | 341 | body #index .cloud .content .contentLeft { 342 | float: left; 343 | width: 16%; 344 | } 345 | 346 | @media -sass-debug-info { 347 | filename { 348 | font-family: 349 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 350 | } 351 | line { 352 | font-family: \0000398 353 | } 354 | } 355 | 356 | body #index .cloud .content .contentLeft ul { 357 | margin-top: 20px; 358 | } 359 | 360 | @media -sass-debug-info { 361 | filename { 362 | font-family: 363 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 364 | } 365 | line { 366 | font-family: \00003100 367 | } 368 | } 369 | 370 | body #index .cloud .content .contentLeft ul li { 371 | height: 40px; 372 | line-height: 40px; 373 | width: 100%; 374 | margin-left: -40px; 375 | padding-left: 70px; 376 | position: relative; 377 | } 378 | 379 | @media -sass-debug-info { 380 | filename { 381 | font-family: 382 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 383 | } 384 | line { 385 | font-family: \00003107 386 | } 387 | } 388 | 389 | body #index .cloud .content .contentLeft ul li:hover { 390 | background: #E3E8EB; 391 | } 392 | 393 | @media -sass-debug-info { 394 | filename { 395 | font-family: 396 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 397 | } 398 | line { 399 | font-family: \00003110 400 | } 401 | } 402 | 403 | body #index .cloud .content .contentLeft ul li a { 404 | font-size: 14px; 405 | color: #424E67; 406 | } 407 | 408 | @media -sass-debug-info { 409 | filename { 410 | font-family: 411 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 412 | } 413 | line { 414 | font-family: \00003114 415 | } 416 | } 417 | 418 | body #index .cloud .content .contentLeft ul li:hover a { 419 | color: #3B8CFF; 420 | } 421 | 422 | @media -sass-debug-info { 423 | filename { 424 | font-family: 425 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 426 | } 427 | line { 428 | font-family: \00003117 429 | } 430 | } 431 | 432 | body #index .cloud .content .contentLeft ul li .contentBg { 433 | display: block; 434 | position: absolute; 435 | width: 20px; 436 | height: 20px; 437 | left: 40px; 438 | top: 10px; 439 | z-index: 2px; 440 | } 441 | 442 | @media -sass-debug-info { 443 | filename { 444 | font-family: 445 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 446 | } 447 | line { 448 | font-family: \00003126 449 | } 450 | } 451 | 452 | body #index .cloud .content .contentLeft ul li .bg1 { 453 | background: url("../images/file.png") no-repeat; 454 | background-size: 100%; 455 | } 456 | 457 | @media -sass-debug-info { 458 | filename { 459 | font-family: 460 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 461 | } 462 | line { 463 | font-family: \00003130 464 | } 465 | } 466 | 467 | body #index .cloud .content .contentLeft ul li .bg2 { 468 | background: url("../images/sha.png") no-repeat; 469 | background-size: 100%; 470 | } 471 | 472 | @media -sass-debug-info { 473 | filename { 474 | font-family: 475 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 476 | } 477 | line { 478 | font-family: \00003134 479 | } 480 | } 481 | 482 | body #index .cloud .content .contentLeft ul li .bg3 { 483 | background: url("../images/huishouq.png") no-repeat; 484 | background-size: 100%; 485 | } 486 | 487 | @media -sass-debug-info { 488 | filename { 489 | font-family: 490 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 491 | } 492 | line { 493 | font-family: \00003139 494 | } 495 | } 496 | 497 | body #index .cloud .content .contentLeft ul .active { 498 | background: #E3E8EB; 499 | } 500 | 501 | @media -sass-debug-info { 502 | filename { 503 | font-family: 504 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 505 | } 506 | line { 507 | font-family: \00003141 508 | } 509 | } 510 | 511 | body #index .cloud .content .contentLeft ul .active a { 512 | color: #3B8CFF; 513 | } 514 | 515 | @media -sass-debug-info { 516 | filename { 517 | font-family: 518 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 519 | } 520 | line { 521 | font-family: \00003147 522 | } 523 | } 524 | 525 | body #index .cloud .content .contentRight { 526 | float: left; 527 | width: 80.5%; 528 | background: #fff; 529 | padding-bottom: 40px; 530 | margin-left: 30px; 531 | border: 1px solid #D8DFEA; 532 | border-radius: 4px; 533 | position: relative; 534 | } 535 | 536 | @media -sass-debug-info { 537 | filename { 538 | font-family: 539 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 540 | } 541 | line { 542 | font-family: \00003156 543 | } 544 | } 545 | 546 | body #index .cloud .content .contentRight .fixedBtn { 547 | position: absolute; 548 | width: 15px; 549 | padding: 5px; 550 | font-size: 14px; 551 | background: #3B8CFF; 552 | border-radius: 4px; 553 | color: #fff; 554 | font-weight: bold; 555 | top: 0; 556 | left: -25px; 557 | cursor: pointer; 558 | visibility: hidden; 559 | } 560 | 561 | @media -sass-debug-info { 562 | filename { 563 | font-family: 564 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 565 | } 566 | line { 567 | font-family: \00003170 568 | } 569 | } 570 | 571 | body #index .cloud .content .contentRight:hover .fixedBtn { 572 | visibility: visible; 573 | } 574 | 575 | @media -sass-debug-info { 576 | filename { 577 | font-family: 578 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 579 | } 580 | line { 581 | font-family: \00003173 582 | } 583 | } 584 | 585 | body #index .cloud .content .contentRight .operat { 586 | padding: 20px; 587 | } 588 | 589 | @media -sass-debug-info { 590 | filename { 591 | font-family: 592 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 593 | } 594 | line { 595 | font-family: \00003175 596 | } 597 | } 598 | 599 | body #index .cloud .content .contentRight .operat .operatLeft { 600 | float: left; 601 | margin-left: -10px; 602 | } 603 | 604 | @media -sass-debug-info { 605 | filename { 606 | font-family: 607 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 608 | } 609 | line { 610 | font-family: \00003178 611 | } 612 | } 613 | 614 | body #index .cloud .content .contentRight .operat .operatLeft div { 615 | float: left; 616 | height: 20px; 617 | line-height: 20px; 618 | padding: 5px 10px 5px 30px; 619 | border: 1px solid #C0D9FE; 620 | margin-left: 10px; 621 | border-radius: 4px; 622 | position: relative; 623 | color: #3B8CFF; 624 | font-size: 14px; 625 | cursor: pointer; 626 | } 627 | 628 | @media -sass-debug-info { 629 | filename { 630 | font-family: 631 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 632 | } 633 | line { 634 | font-family: \00003190 635 | } 636 | } 637 | 638 | body #index .cloud .content .contentRight .operat .operatLeft div:hover 639 | { 640 | background: #3B8CFF; 641 | color: #fff; 642 | } 643 | 644 | @media -sass-debug-info { 645 | filename { 646 | font-family: 647 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 648 | } 649 | line { 650 | font-family: \00003194 651 | } 652 | } 653 | 654 | body #index .cloud .content .contentRight .operat .operatLeft div .operatLeftBg 655 | { 656 | display: block; 657 | width: 18px; 658 | height: 18px; 659 | position: absolute; 660 | top: 6px; 661 | left: 5px; 662 | } 663 | 664 | @media -sass-debug-info { 665 | filename { 666 | font-family: 667 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 668 | } 669 | line { 670 | font-family: \00003202 671 | } 672 | } 673 | 674 | body #index .cloud .content .contentRight .operat .operatLeft div .bg1 { 675 | background: url("../images/share.png") no-repeat; 676 | background-size: 100%; 677 | } 678 | 679 | @media -sass-debug-info { 680 | filename { 681 | font-family: 682 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 683 | } 684 | line { 685 | font-family: \00003206 686 | } 687 | } 688 | 689 | body #index .cloud .content .contentRight .operat .operatLeft div .bg2 { 690 | background: url("../images/folder.png") no-repeat; 691 | background-size: 100%; 692 | } 693 | 694 | @media -sass-debug-info { 695 | filename { 696 | font-family: 697 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 698 | } 699 | line { 700 | font-family: \00003210 701 | } 702 | } 703 | 704 | body #index .cloud .content .contentRight .operat .operatLeft div .bg3 { 705 | background: url("../images/download.png") no-repeat; 706 | background-size: 100%; 707 | } 708 | 709 | @media -sass-debug-info { 710 | filename { 711 | font-family: 712 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 713 | } 714 | line { 715 | font-family: \00003214 716 | } 717 | } 718 | 719 | body #index .cloud .content .contentRight .operat .operatLeft div .bg4 { 720 | background: url("../images/Mobile-phone.png") no-repeat; 721 | background-size: 100%; 722 | } 723 | 724 | @media -sass-debug-info { 725 | filename { 726 | font-family: 727 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 728 | } 729 | line { 730 | font-family: \00003220 731 | } 732 | } 733 | 734 | body #index .cloud .content .contentRight .operat .operatRight { 735 | float: right; 736 | position: relative; 737 | padding-right: 100px; 738 | } 739 | 740 | @media -sass-debug-info { 741 | filename { 742 | font-family: 743 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 744 | } 745 | line { 746 | font-family: \00003224 747 | } 748 | } 749 | 750 | body #index .cloud .content .contentRight .operat .operatRight input { 751 | width: 170px; 752 | height: 35px; 753 | line-height: 35px; 754 | border: none; 755 | background: #F1F2F4; 756 | padding-left: 18px; 757 | padding-right: 45px; 758 | border-radius: 15px; 759 | } 760 | 761 | @media -sass-debug-info { 762 | filename { 763 | font-family: 764 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 765 | } 766 | line { 767 | font-family: \00003234 768 | } 769 | } 770 | 771 | body #index .cloud .content .contentRight .operat .operatRight .searchBg 772 | { 773 | display: block; 774 | position: absolute; 775 | width: 20px; 776 | height: 20px; 777 | top: 7px; 778 | left: 195px; 779 | background: url("../images/search.png") no-repeat; 780 | background-size: 100%; 781 | cursor: pointer; 782 | } 783 | 784 | @media -sass-debug-info { 785 | filename { 786 | font-family: 787 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 788 | } 789 | line { 790 | font-family: \00003245 791 | } 792 | } 793 | 794 | body #index .cloud .content .contentRight .operat .operatRight .sort { 795 | display: block; 796 | width: 20px; 797 | height: 20px; 798 | position: absolute; 799 | top: 7px; 800 | right: 60px; 801 | background: url("../images/Viewlist.png") no-repeat; 802 | background-size: 100%; 803 | cursor: pointer; 804 | } 805 | 806 | @media -sass-debug-info { 807 | filename { 808 | font-family: 809 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 810 | } 811 | line { 812 | font-family: \00003256 813 | } 814 | } 815 | 816 | body #index .cloud .content .contentRight .operat .operatRight .sortTwo 817 | { 818 | display: block; 819 | width: 20px; 820 | height: 20px; 821 | position: absolute; 822 | top: 7px; 823 | right: 20px; 824 | background: url("../images/ViewGallery.png") no-repeat; 825 | cursor: pointer; 826 | background-size: 100%; 827 | } 828 | 829 | @media -sass-debug-info { 830 | filename { 831 | font-family: 832 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 833 | } 834 | line { 835 | font-family: \00003269 836 | } 837 | } 838 | 839 | body #index .cloud .content .contentRight .file { 840 | padding-left: 20px; 841 | width: 100%; 842 | } 843 | 844 | @media -sass-debug-info { 845 | filename { 846 | font-family: 847 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 848 | } 849 | line { 850 | font-family: \00003272 851 | } 852 | } 853 | 854 | body #index .cloud .content .contentRight .file table { 855 | width: 96%; 856 | } 857 | 858 | @media -sass-debug-info { 859 | filename { 860 | font-family: 861 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 862 | } 863 | line { 864 | font-family: \00003274 865 | } 866 | } 867 | 868 | body #index .cloud .content .contentRight .file table tr { 869 | height: 40px; 870 | line-height: 40px; 871 | } 872 | 873 | @media -sass-debug-info { 874 | filename { 875 | font-family: 876 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 877 | } 878 | line { 879 | font-family: \00003277 880 | } 881 | } 882 | 883 | body #index .cloud .content .contentRight .file table tr td { 884 | font-size: 12px; 885 | color: #444; 886 | position: relative; 887 | } 888 | 889 | @media -sass-debug-info { 890 | filename { 891 | font-family: 892 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 893 | } 894 | line { 895 | font-family: \00003281 896 | } 897 | } 898 | 899 | body #index .cloud .content .contentRight .file table tr td .folder { 900 | position: absolute; 901 | display: block; 902 | width: 30px; 903 | height: 30px; 904 | top: 5px; 905 | left: 30px; 906 | background: url("../images/folder1.png") no-repeat; 907 | background-size: 100%; 908 | } 909 | 910 | body #index .cloud .content .contentRight .file table tr td .myfile { 911 | position: absolute; 912 | display: block; 913 | width: 30px; 914 | height: 30px; 915 | top: 5px; 916 | left: 30px; 917 | background: url("../images/file.png") no-repeat; 918 | background-size: 100%; 919 | } 920 | 921 | @media -sass-debug-info { 922 | filename { 923 | font-family: 924 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 925 | } 926 | line { 927 | font-family: \00003292 928 | } 929 | } 930 | 931 | body #index .cloud .content .contentRight .file table tr .hideArea { 932 | visibility: hidden; 933 | } 934 | 935 | @media -sass-debug-info { 936 | filename { 937 | font-family: 938 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 939 | } 940 | line { 941 | font-family: \00003294 942 | } 943 | } 944 | 945 | body #index .cloud .content .contentRight .file table tr .hideArea span 946 | { 947 | display: block; 948 | float: left; 949 | cursor: pointer; 950 | } 951 | 952 | @media -sass-debug-info { 953 | filename { 954 | font-family: 955 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 956 | } 957 | line { 958 | font-family: \00003299 959 | } 960 | } 961 | 962 | body #index .cloud .content .contentRight .file table tr .hideArea .huishouq 963 | { 964 | width: 20px; 965 | height: 20px; 966 | background: url("../images/huishouq.png") no-repeat; 967 | background-size: 100%; 968 | } 969 | 970 | @media -sass-debug-info { 971 | filename { 972 | font-family: 973 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 974 | } 975 | line { 976 | font-family: \00003305 977 | } 978 | } 979 | 980 | body #index .cloud .content .contentRight .file table tr .hideArea .download 981 | { 982 | margin-left: 20px; 983 | width: 20px; 984 | height: 20px; 985 | background: url("../images/download.png") no-repeat; 986 | background-size: 100%; 987 | } 988 | 989 | @media -sass-debug-info { 990 | filename { 991 | font-family: 992 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 993 | } 994 | line { 995 | font-family: \00003313 996 | } 997 | } 998 | 999 | body #index .cloud .content .contentRight .file table tr:hover { 1000 | background: #F2F6FD; 1001 | } 1002 | 1003 | @media -sass-debug-info { 1004 | filename { 1005 | font-family: 1006 | file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/index\.scss 1007 | } 1008 | line { 1009 | font-family: \00003316 1010 | } 1011 | } 1012 | 1013 | body #index .cloud .content .contentRight .file table tr:hover .hideArea 1014 | { 1015 | visibility: visible; 1016 | } -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/demo.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family:verdana,helvetica,arial,sans-serif; 3 | padding:20px; 4 | font-size:12px; 5 | margin:0; 6 | } 7 | h2 { 8 | font-size:18px; 9 | font-weight:bold; 10 | margin:0; 11 | margin-bottom:15px; 12 | } 13 | .demo-info{ 14 | padding:0 0 12px 0; 15 | } 16 | .demo-tip{ 17 | display:none; 18 | } 19 | .label-top{ 20 | display: block; 21 | height: 22px; 22 | line-height: 22px; 23 | vertical-align: middle; 24 | } -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/accordion_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/accordion_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/blank.gif -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/calendar_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/calendar_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/combo_arrow.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/datagrid_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/datagrid_icons.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/datebox_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/datebox_arrow.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/layout_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/layout_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/linkbutton_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/linkbutton_bg.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/loading.gif -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/menu_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/messager_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/messager_icons.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/pagination_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/pagination_icons.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/panel_tools.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/passwordbox_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/passwordbox_close.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/passwordbox_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/passwordbox_open.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/searchbox_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/searchbox_button.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/slider_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/slider_handle.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/spinner_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/spinner_arrows.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/tabs_icons.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/tagbox_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/tagbox_icons.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/tree_icons.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/jquery/images/validatebox_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/css/jquery/images/validatebox_warning.png -------------------------------------------------------------------------------- /src/main/webapp/static/css/login.css: -------------------------------------------------------------------------------- 1 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\000032}} 2 | * { 3 | margin: 0; 4 | padding: 0; } 5 | 6 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\000036}} 7 | li { 8 | list-style: none; } 9 | 10 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\000037}} 11 | a { 12 | text-decoration: none; 13 | color: #fff; } 14 | 15 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000312}} 16 | #cloud .login { 17 | width: 100%; 18 | height: 550px; 19 | background: url("../images/loginBg.jpg") no-repeat; 20 | background-size: 100%; } 21 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000317}} 22 | #cloud .login .loginTop { 23 | padding: 20px; } 24 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000319}} 25 | #cloud .login .loginTop .topLeft { 26 | float: left; } 27 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000321}} 28 | #cloud .login .loginTop .topLeft span { 29 | display: block; 30 | float: left; 31 | height: 36px; 32 | line-height: 36px; } 33 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000327}} 34 | #cloud .login .loginTop .topLeft .logo { 35 | width: 60px; 36 | background: url("../images/qst.png") no-repeat; } 37 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000331}} 38 | #cloud .login .loginTop .topLeft .logoName { 39 | color: #fff; 40 | font-size: 20px; 41 | font-weight: bold; 42 | margin-left: 10px; } 43 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000338}} 44 | #cloud .login .loginTop .topRight { 45 | float: right; } 46 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000340}} 47 | #cloud .login .loginTop .topRight li { 48 | float: left; 49 | margin-left: 20px; } 50 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000343}} 51 | #cloud .login .loginTop .topRight li a { 52 | font-size: 16px; } 53 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000347}} 54 | #cloud .login .loginContent { 55 | clear: both; } 56 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000349}} 57 | #cloud .login .loginContent .content { 58 | margin-top: 40px; 59 | margin-right: 100px; 60 | float: right; 61 | width: 320px; 62 | padding: 40px; 63 | background: #fff; } 64 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000356}} 65 | #cloud .login .loginContent .content .ip { 66 | display: block; 67 | margin: 0 auto; 68 | margin-top: 20px; 69 | width: 90%; 70 | padding: 10px; 71 | border: 1px solid #E7E7E7; } 72 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000364}} 73 | #cloud .login .loginContent .content .ip:focus { 74 | border-color: #2BCBF8; } 75 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000367}} 76 | #cloud .login .loginContent .content .remeber { 77 | margin-top: 20px; 78 | font-size: 14px; 79 | color: #666; 80 | margin-left: 5px; } 81 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000372}} 82 | #cloud .login .loginContent .content .remeber input { 83 | margin-right: 10px; } 84 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000376}} 85 | #cloud .login .loginContent .content .logon { 86 | width: 98%; 87 | margin: 0 auto; 88 | margin-top: 20px; 89 | border: none; 90 | height: 40px; 91 | line-height: 40px; 92 | border-radius: 5px; 93 | background: #5D9BF9; 94 | color: #fff; 95 | font-size: 16px; 96 | font-weight: bold; } 97 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000389}} 98 | #cloud .login .loginContent .content .loginType { 99 | margin-top: 20px; } 100 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000391}} 101 | #cloud .login .loginContent .content .loginType .floatLi { 102 | float: left; 103 | margin-right: 20px; 104 | background: url("../images/icons.png") no-repeat; 105 | cursor: pointer; } 106 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\0000397}} 107 | #cloud .login .loginContent .content .loginType .phone { 108 | background: none; 109 | font-weight: bold; 110 | font-size: 14px; 111 | margin-left: 8px; 112 | line-height: 30px; } 113 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003103}} 114 | #cloud .login .loginContent .content .loginType .phone:hover { 115 | color: #5D9BF9; 116 | text-decoration: underline; } 117 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003108}} 118 | #cloud .login .loginContent .content .loginType .Bg1 { 119 | width: 25px; 120 | height: 25px; 121 | background-position: -63px 2px; } 122 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003109}} 123 | #cloud .login .loginContent .content .loginType .Bg2 { 124 | width: 25px; 125 | height: 25px; 126 | background-position: -88px 2px; } 127 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003110}} 128 | #cloud .login .loginContent .content .loginType .Bg3 { 129 | width: 25px; 130 | height: 25px; 131 | background-position: -112px 2px; } 132 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003111}} 133 | #cloud .login .loginContent .content .loginType .Bg4 { 134 | width: 25px; 135 | height: 25px; 136 | background-position: -143px -99px; } 137 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003113}} 138 | #cloud .login .loginContent .content .loginBottom { 139 | height: 60px; 140 | margin: -40px; 141 | margin-top: 20px; 142 | background: #F3F8FF; 143 | line-height: 60px; } 144 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003120}} 145 | #cloud .login .loginContent .content .loginBottom ul li { 146 | float: right; 147 | margin-bottom: -40px; } 148 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003123}} 149 | #cloud .login .loginContent .content .loginBottom ul li a { 150 | color: #666; } 151 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003125}} 152 | #cloud .login .loginContent .content .loginBottom ul li a:hover { 153 | text-decoration: underline; } 154 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003129}} 155 | #cloud .login .loginContent .content .loginBottom ul li input { 156 | padding: 5px; 157 | margin-right: 40px; 158 | border: 1px solid #DFECFE; 159 | background: #F3F8FF; 160 | font-size: 14px; 161 | border-radius: 5px; 162 | color: #347FFF; 163 | cursor: pointer; } 164 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003138}} 165 | #cloud .login .loginContent .content .loginBottom ul li input:hover { 166 | border: 1px solid transparent; 167 | text-decoration: underline; } 168 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003149}} 169 | #cloud .version { 170 | width: 100%; 171 | background: #EFF4F8; 172 | padding-top: 40px; 173 | padding-bottom: 40px; } 174 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003154}} 175 | #cloud .version ul { 176 | width: 50%; 177 | margin: 0 auto; } 178 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003157}} 179 | #cloud .version ul .bottom { 180 | float: left; 181 | width: 90px; 182 | height: 70px; 183 | margin-left: 40px; 184 | background: url("../images/login-1.png") no-repeat; 185 | cursor: pointer; } 186 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003165}} 187 | #cloud .version ul .versionBg1 { 188 | background-position: -320px 0; } 189 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003167}} 190 | #cloud .version ul .versionBg1:hover { 191 | background-position: -410px -70px; } 192 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003171}} 193 | #cloud .version ul .versionBg2 { 194 | background-position: -500px -70px; } 195 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003173}} 196 | #cloud .version ul .versionBg2:hover { 197 | background-position: -90px -160px; } 198 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003177}} 199 | #cloud .version ul .versionBg3 { 200 | background-position: -180px -160px; } 201 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003179}} 202 | #cloud .version ul .versionBg3:hover { 203 | background-position: 0px -160px; } 204 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003183}} 205 | #cloud .version ul .versionBg4 { 206 | background-position: -268px -160px; } 207 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003185}} 208 | #cloud .version ul .versionBg4:hover { 209 | background-position: -318px -70px; } 210 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003189}} 211 | #cloud .version ul .versionBg5 { 212 | background-position: -500px 0px; } 213 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/login\.scss}line{font-family:\00003191}} 214 | #cloud .version ul .versionBg5:hover { 215 | background-position: -410px 0px; } 216 | -------------------------------------------------------------------------------- /src/main/webapp/static/css/register.css: -------------------------------------------------------------------------------- 1 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\000032}} 2 | * { 3 | margin: 0; 4 | padding: 0; } 5 | 6 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\000036}} 7 | li { 8 | list-style: none; } 9 | 10 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\000037}} 11 | a { 12 | text-decoration: none; } 13 | 14 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\000038}} 15 | #register { 16 | width: 100%; } 17 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000310}} 18 | #register .registerTop { 19 | border-bottom: 1px solid #EBEBEB; 20 | box-shadow: 5px 0 5px #EBEBEB; } 21 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000313}} 22 | #register .registerTop .topContent { 23 | padding: 20px 200px; } 24 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000315}} 25 | #register .registerTop .topContent .contentLeft { 26 | float: left; } 27 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000317}} 28 | #register .registerTop .topContent .contentLeft span { 29 | display: inline-block; 30 | color: #666; 31 | font-size: 20px; 32 | height: 30px; 33 | line-height: 30px; 34 | float: left; } 35 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000325}} 36 | #register .registerTop .topContent .contentLeft .logoBg { 37 | width: 230px; 38 | background: url("../images/logo.png") no-repeat; } 39 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000330}} 40 | #register .registerTop .topContent .contentRight { 41 | float: right; } 42 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000332}} 43 | #register .registerTop .topContent .contentRight span { 44 | font-size: 14px; 45 | color: #333; 46 | display: inline-block; } 47 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000337}} 48 | #register .registerTop .topContent .contentRight .login { 49 | margin-left: 20px; } 50 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000339}} 51 | #register .registerTop .topContent .contentRight .login input { 52 | padding: 0 10px; 53 | background: #F3F8FF; 54 | border: 1px solid #BAD4FD; 55 | border-radius: 2px; 56 | color: #5D9BF9; 57 | cursor: pointer; } 58 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000346}} 59 | #register .registerTop .topContent .contentRight .login input:hover { 60 | color: #fff; 61 | background: #5D9BF9; } 62 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000356}} 63 | #register .content .reContent { 64 | padding: 40px 200px; } 65 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000358}} 66 | #register .content .reContent .reContentLeft { 67 | float: left; } 68 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000361}} 69 | #register .content .reContent .reContentLeft form div { 70 | font-size: 16px; 71 | color: #666; 72 | font-weight: bold; 73 | margin-top: 20px; } 74 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000366}} 75 | #register .content .reContent .reContentLeft form div input { 76 | margin-left: 15px; 77 | padding: 10px 8px; 78 | width: 300px; 79 | border: 1px solid #ddd; 80 | color: #aaa; 81 | font-size: 14px; } 82 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000373}} 83 | #register .content .reContent .reContentLeft form div input:focus { 84 | border: 1px solid #5796E6; } 85 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000378}} 86 | #register .content .reContent .reContentLeft form .check { 87 | margin-left: -80px; 88 | font-size: 14px; } 89 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000381}} 90 | #register .content .reContent .reContentLeft form .check input { 91 | margin-right: -140px; 92 | display: inline-block; } 93 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000385}} 94 | #register .content .reContent .reContentLeft form .check span { 95 | color: #5796E6; } 96 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000387}} 97 | #register .content .reContent .reContentLeft form .regis { 98 | margin-left: 60px; } 99 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000389}} 100 | #register .content .reContent .reContentLeft form .regis input { 101 | width: 320px; 102 | background: #4490F6; 103 | color: #fff; 104 | border-radius: 4px; 105 | cursor: pointer; } 106 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\0000399}} 107 | #register .content .reContent .reContentRight { 108 | float: right; 109 | background: #F5FBFF; 110 | width: 300px; 111 | margin-top: 20px; 112 | border: 1px solid #D1EEFF; } 113 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\00003105}} 114 | #register .content .reContent .reContentRight .rightContent { 115 | padding-left: 10px; 116 | padding-right: 10px; 117 | padding-bottom: 50px; } 118 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\00003109}} 119 | #register .content .reContent .reContentRight .rightContent .phone { 120 | height: 40px; 121 | line-height: 40px; 122 | border-bottom: 1px solid #E6EDF2; } 123 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\00003113}} 124 | #register .content .reContent .reContentRight .rightContent .phone span { 125 | display: inline-block; 126 | float: left; 127 | font-size: 14px; 128 | color: #666; 129 | font-weight: bold; } 130 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\00003120}} 131 | #register .content .reContent .reContentRight .rightContent .phone .phoneBg { 132 | width: 25px; 133 | height: 40px; 134 | background: url("../images/phone.png") no-repeat; 135 | background-position: 0 5px; 136 | margin-right: 10px; } 137 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\00003128}} 138 | #register .content .reContent .reContentRight .rightContent .send { 139 | margin-top: 20px; } 140 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\00003130}} 141 | #register .content .reContent .reContentRight .rightContent .send p { 142 | font-size: 12px; 143 | font-weight: bold; 144 | color: #666; } 145 | @media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/qiufen\/Desktop\/cloud\/scss\/register\.scss}line{font-family:\00003140}} 146 | #register .reBottom { 147 | margin-top: 40px; 148 | text-align: center; } 149 | -------------------------------------------------------------------------------- /src/main/webapp/static/images/Mobile-phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/Mobile-phone.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/ViewGallery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/ViewGallery.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/Viewlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/Viewlist.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/download.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/file.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/folder.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/folder1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/folder1.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/foot_pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/foot_pic.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/images/huishouq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/huishouq.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/icon_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/icon_1.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/icon_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/icon_2.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/icons.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/login-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/login-1.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/loginBg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/loginBg.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/logo.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/person.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/person.jpg -------------------------------------------------------------------------------- /src/main/webapp/static/images/phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/phone.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/qst.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/qst.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/search.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/sha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/sha.png -------------------------------------------------------------------------------- /src/main/webapp/static/images/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ACode-Dreamer/cloud/b43280428f9aa8194938198e4f0040bd84c4cae6/src/main/webapp/static/images/share.png -------------------------------------------------------------------------------- /src/main/webapp/static/js/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | function showFullPage() { 5 | var contentRight = document.getElementById('contentRight'); 6 | var fixedBtn = document.getElementById('fixedBtn'); 7 | var contentLeft = document.getElementById('contentLeft'); 8 | var hideBtn = document.getElementById('hideBtn'); 9 | contentLeft.style.display = 'none'; 10 | contentRight.style.width = '100%'; 11 | hideBtn.style.display = ''; 12 | fixedBtn.style.display = 'none'; 13 | } 14 | function hideFullPage() { 15 | var contentRight = document.getElementById('contentRight'); 16 | var fixedBtn = document.getElementById('fixedBtn'); 17 | var contentLeft = document.getElementById('contentLeft'); 18 | var hideBtn = document.getElementById('hideBtn'); 19 | contentLeft.style.display = ''; 20 | contentRight.style.width = '80.5%'; 21 | fixedBtn.style.display = ''; 22 | hideBtn.style.display = 'none'; 23 | } 24 | function showFileUpload(url) { 25 | //file的change事件 26 | $('#uploadFile').change(function () { 27 | //提交form表单的数据 28 | $('#uploadForm').submit(); 29 | //alert($('#uploadFile').val()); 30 | 31 | // 清空file标签的value,否则再次提交此文件时,onchange事件就不触发了 32 | $('#uploadFile').val(''); 33 | window.location.reload(); 34 | 35 | }); 36 | 37 | //触发file的点击事件 38 | $('#uploadFile').click(); 39 | } 40 | function getPath(obj) { 41 | if (obj) { 42 | if (window.navigator.userAgent.indexOf("MSIE") >= 1) { 43 | obj.select(); 44 | return document.selection.createRange().text; 45 | } else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { 46 | if (obj.files) { 47 | return obj.files.item(0).getAsDataURL(); 48 | } 49 | return obj.value; 50 | } else { 51 | // 支持html5的浏览器,比如高版本的firefox、chrome、ie10 52 | if (obj.files && obj.files[0]) { 53 | var reader = new FileReader(); 54 | reader.onload = function(e) { 55 | // alert(JSON.stringify(obj.files[0])); 56 | return e.target.result; 57 | }; 58 | reader.readAsDataURL(obj.files[0]); 59 | } 60 | } 61 | return obj.value; 62 | } 63 | } -------------------------------------------------------------------------------- /src/main/webapp/static/js/login.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | function checkLoad() { 5 | var username = document.getElementById("username").value; 6 | var password = document.getElementById("password").value; 7 | if (username == null || username == "") { 8 | alert("用户名不能为空!"); 9 | return false; 10 | } 11 | if (password == null || password == "") { 12 | alert("密码不能为空!"); 13 | return false; 14 | } 15 | return true; 16 | } -------------------------------------------------------------------------------- /src/main/webapp/static/js/register.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | function checkLoad() { 5 | var username = document.getElementById("username").value; 6 | var password = document.getElementById("password").value; 7 | var repass = document.getElementById("repass").value; 8 | var email = document.getElementById("email").value; 9 | var telephone = document.getElementById("telephone").value; 10 | var agreement = document.getElementById("agreement"); 11 | 12 | if (username == null || username == "") { 13 | alert("用户名不能为空!"); 14 | return false; 15 | } 16 | if (password == null || password == "") { 17 | alert("密码不能为空!"); 18 | return false; 19 | } 20 | if (email == null || email == "") { 21 | alert("电子邮件不能为空!"); 22 | return false; 23 | } 24 | if (telephone == null || telephone == "") { 25 | alert("电话号码不能为空!"); 26 | return false; 27 | } 28 | if (repass == null || repass == "" || password != repass) { 29 | alert("密码两次输入不一致!"); 30 | return false; 31 | } 32 | if (!agreement.checked) { 33 | alert("请先阅读用户协议!"); 34 | return false; 35 | } 36 | return true; 37 | } --------------------------------------------------------------------------------