mirror of
https://github.com/wushuo894/ani-rss.git
synced 2026-03-13 09:20:23 +00:00
54 lines
1.8 KiB
Java
54 lines
1.8 KiB
Java
package ani.rss.action;
|
|
|
|
|
|
import ani.rss.entity.Result;
|
|
import ani.rss.util.other.ConfigUtil;
|
|
import ani.rss.web.action.BaseAction;
|
|
import ani.rss.web.annotation.Auth;
|
|
import ani.rss.web.annotation.Path;
|
|
import cn.hutool.core.codec.Base64;
|
|
import cn.hutool.core.io.FileUtil;
|
|
import cn.hutool.core.net.multipart.MultipartFormData;
|
|
import cn.hutool.core.net.multipart.UploadFile;
|
|
import cn.hutool.crypto.SecureUtil;
|
|
import cn.hutool.http.server.HttpServerRequest;
|
|
import cn.hutool.http.server.HttpServerResponse;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
|
|
/**
|
|
* 上传文件
|
|
*/
|
|
@Slf4j
|
|
@Auth
|
|
@Path("/upload")
|
|
public class UploadAction implements BaseAction {
|
|
@Override
|
|
public void doAction(HttpServerRequest request, HttpServerResponse response) throws IOException {
|
|
String type = request.getParam("type");
|
|
MultipartFormData multipart = request.getMultipart();
|
|
UploadFile file = multipart.getFile("file");
|
|
if (file.size() > 1024 * 1024 * 50) {
|
|
resultErrorMsg("文件大小超过 50M");
|
|
return;
|
|
}
|
|
byte[] fileContent = file.getFileContent();
|
|
if ("getBase64".equals(type)) {
|
|
resultSuccess(Base64.encode(fileContent));
|
|
return;
|
|
}
|
|
|
|
String s = SecureUtil.md5(new ByteArrayInputStream(fileContent));
|
|
String fileName = file.getFileName();
|
|
String saveName = s + "." + FileUtil.extName(fileName);
|
|
|
|
File configDir = ConfigUtil.getConfigDir();
|
|
FileUtil.mkdir(configDir + "/files/" + s.charAt(0));
|
|
FileUtil.writeBytes(fileContent, configDir + "/files/" + s.charAt(0) + "/" + saveName);
|
|
resultSuccess(new Result<>().setMessage("上传完成").setData(s.charAt(0) + "/" + saveName));
|
|
}
|
|
}
|