tompcat java servlet_我的毕业设计——网盘(客户端部分)

2.[代码]一个主要的controller类

package controller;

import java.io.File;

import java.io.IOException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import model.Message;

import model.MyDiskInfo;

import model.MyFile;

import model.User;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.multipart.MultipartFile;

import util.DaoSupport;

import util.DownloadSupport;

import util.FileStorage;

import util.UploadHelper;

import com.alibaba.fastjson.JSON;

import dao.DeleteFileTransaction;

import dao.MessageDao;

import dao.MoveFileTransaction;

import dao.MyDiskInfoDao;

import dao.MyFileDao;

import dao.UploadTransaction;

@Controller

@RequestMapping("/home")

public class DiskController extends Support{

private static final String FILEBASEPATH = FileStorage.getFilePath();

/**

* 列出文件夹的内的所有子文件

* @param id

* @return

*/

@RequestMapping("/list_myfile")

@ResponseBody

public String listFiles(long id,String pwd){

MyFile folder = MyFileDao.getMyFile(id);

List myFiles = null;

if(folder.getIsLock() == 1){

if(folder.getPassword().equals(pwd)){

myFiles = MyFileDao.getFilesByFolderId(id);

}else{

return "fail";

}

}else{

myFiles = MyFileDao.getFilesByFolderId(id);

}

return JSON.toJSONString(myFiles);

}

/**

* 上传文件

* @param request

* @param folderid

* @return

*/

@RequestMapping("/upload/{folderid}")

@ResponseBody

public String upload(HttpServletRequest request,@PathVariable long folderid){

UploadHelper upload = new UploadHelper();

MultipartFile file = upload.getFiles(request).get(0);

String result = "fail";

String fileName = file.getOriginalFilename();

String suffix = fileName.substring(fileName.lastIndexOf(".")+1);

User user = (User) session.getAttribute("user");

MyFile myFile = new MyFile();

myFile.setUser_id(user.getId());

myFile.setSize(file.getSize());

if(MyDiskInfoDao.isEnoughSpace(myFile)){

String filePath = FILEBASEPATH + new Date().getTime() + "." + suffix;

try {

upload.upload(file, filePath);//文件没有成功保存返回失败信息

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

myFile.setCreateDate(sdf.format(new Date()));

myFile.setName(fileName);

myFile.setParent_id(folderid);

myFile.setType(suffix.toLowerCase());

myFile.setPath(MyFileDao.getPath(folderid)+folderid+"/");

myFile.setLocation(filePath);

myFile.setIsShare(0);

myFile.setDescription("");

myFile = UploadTransaction.upload(myFile);

/*同步网盘信息*/

MyDiskInfo diskInfo = MyDiskInfoDao.load(user.getId());

session.setAttribute("diskInfo",diskInfo);

Map data = new HashMap();

data.put("file", myFile);

data.put("usedSize", diskInfo.getUsedSize());

result = JSON.toJSONString(data);

} catch (IOException e) {

e.printStackTrace();

}

}

return result;

}

/**

* 下载文件

* @param fileId

* @param response

*/

@RequestMapping("/download/{fileId}")

public void download(@PathVariable long fileId,HttpServletResponse response){

MyFile myFile = MyFileDao.getMyFile(fileId);

DownloadSupport.download(response, myFile);

}

/**

* 新建文件夹

* @param folderId

* @return

*/

@RequestMapping("/mkdir/{folderId}")

@ResponseBody

public String mkdir(@PathVariable long folderId,String folderName){

MyFile dir = new MyFile();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

dir.setCreateDate(sdf.format(new Date()));

dir.setParent_id(folderId);

dir.setName(folderName);

dir.setPath(MyFileDao.getPath(folderId)+folderId+"/");

dir.setType("adir");

dir.setDescription("");

dir.setUser_id(((User)session.getAttribute("user")).getId());

dir.setSize(0);

dir.setId(MyFileDao.save(dir));

return JSON.toJSONString(dir);

}

/**

* 重命名

* @param fileId

* @param fileName

* @return

*/

@RequestMapping("/rename/{fileId}")

@ResponseBody

public String rename(@PathVariable long fileId,String fileName,String pwd){

MyFile myFile = MyFileDao.getMyFile(fileId);

String result = "fail";

if(myFile.getIsLock() == 1){

if(myFile.getPassword() == null && pwd == "" || myFile.getPassword().equals(pwd)){

MyFileDao.rename(fileId, fileName);

result = "success";

}else{

result = "fail";

}

}else{

MyFileDao.rename(fileId, fileName);

result = "success";

}

return result;

}

/**

* 分享文件

* @param fileId

* @return

*/

@RequestMapping("/share")

@ResponseBody

public String share(HttpServletRequest request,long fileId){

MyFile myFile = MyFileDao.getMyFile(fileId);

String result = "fail";

if(myFile != null){

String url = (request.getRequestURL() + "").replace(request.getRequestURI(), "");

myFile.setShareUrl(url+"/share/download/"+myFile.getId());

MyFileDao.share(myFile);

result = url+"/share/"+myFile.getId();

}

return result;

}

/**

* 取消分享

* @param fileId

* @return

*/

@RequestMapping("/cancelshare")

@ResponseBody

public String cancelShare(long fileId){

MyFileDao.cancelShare(fileId);

return "success";

}

/**

* 文件的移动

* @param sourceId

* @param targetId

* @return

*/

@RequestMapping("/movefile")

@ResponseBody

public String moveFile(long sourceId,long targetId){

MyFile sourceFile = MyFileDao.getMyFile(sourceId),

targetFile = MyFileDao.getMyFile(targetId);

MoveFileTransaction.moveFile(sourceFile, targetFile);

return "success";

}

/**

* 给文件上密码

* @param fileId

* @param oldPwd

* @param newPwd

* @return

*/

@RequestMapping("/addlock/{fileId}")

@ResponseBody

public String addLock(@PathVariable long fileId,String pwd){

MyFile myFile = MyFileDao.getMyFile(fileId);

if(myFile.getIsLock() != 1){

MyFileDao.addLock(fileId, pwd);

}

return "success";

}

/**

* 给加锁文件夹更换密码

* @param fileId

* @param oldPwd

* @param newPwd

* @return

*/

@RequestMapping("/changefilepwd/{fileId}")

@ResponseBody

public String changeFilePwd(@PathVariable long fileId,String oldPwd,String newPwd){

MyFile myFile = MyFileDao.getMyFile(fileId);

String result = "fail";

if(myFile.getPassword()==null && oldPwd == "" || myFile.getPassword().equals(oldPwd)){

MyFileDao.addLock(fileId, newPwd);

result = "success";

}

return result;

}

/**

* 给文件解锁

* @param fileId

* @param pwd

* @return

*/

@RequestMapping("/deletelock/{fileId}")

@ResponseBody

public String deleteLock(@PathVariable long fileId,String pwd){

MyFile myFile = MyFileDao.getMyFile(fileId);

String result = "fail";

if(myFile.getPassword().equals(pwd)){

MyFileDao.deleteLock(fileId);

result = "success";

}

return result;

}

/**

* 删除文件(或文件夹),返回删除文件后的网盘容量

* @param fileId

* @return

*/

@RequestMapping("/delete/{fileId}")

@ResponseBody

public String delete(@PathVariable long fileId,String pwd){

MyFile myFile = MyFileDao.getMyFile(fileId);

String result = "fail";

if(myFile.getPassword() == null && pwd == "" || myFile.getPassword().equals(pwd)){

long uId = ((User)session.getAttribute("user")).getId();

if(!myFile.getType().equals("adir")){

/*文件则直接删除*/

DeleteFileTransaction.deleteFile(myFile);

new File(myFile.getLocation()).delete();

}else{

List myFiles = DeleteFileTransaction.deleteFolder(myFile);

/*是文件夹就直接删除数据库记录,是文件就要把文件删除后才删除数据库记录*/

if(myFiles != null){

for(MyFile myF:myFiles){

System.out.println("删除文件:"+myF.getLocation());

new File(myF.getLocation()).delete();

}

}

}

MyDiskInfo diskInfo = MyDiskInfoDao.load(uId);

session.setAttribute("diskInfo",diskInfo);

result = diskInfo.getUsedSize()+"";

}

return result;

}

/**

* 用户留言

* @param message

* @return

*/

@RequestMapping(value="/leavemessage")

@ResponseBody

public String leaveMessage(Message message){

User user = (User) session.getAttribute("user");

message.setUser_id(user.getId());

message.setUsername(user.getUsername());

message.setEmail(user.getEmail());

MessageDao.save(message);

return "1";

}

/**

* 简单查看用户留言

* @param message

* @return

*/

@RequestMapping(value="/msgme")

@ResponseBody

public String returnMessage(){

String sql = "select * from message";

List messages = DaoSupport.query(sql, null,Message.class);

return JSON.toJSONString(messages);

}

/**

* 以"/disk"路径访问网盘

* @return

*/

@RequestMapping("/disk")

public String index(){

return "disk";

}

/**

* 以"/"路径访问网盘

* @return

*/

@RequestMapping("/")

public String index1(){

return "redirect:/home/disk";

}

/**

* 以""路径访问网盘

* @return

*/

@RequestMapping("")

public String index2(){

return "redirect:/home/disk";

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!!本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!!本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!!本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值