FastDFSä¸å¤è®²ï¼ç´æ¥ä¸javaè°ç¨ä»£ç ï¼ä»¥ä¸ä»£ç æ¯ä¸ä¸ªspring mvcä¸ä¸ä¸ªå®æ´çä¸ä¼ 请æ±ï¼è¯·åé
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public Object upload(@RequestParam MultipartFile file) {
UploadResponse res = new UploadResponse();
try {
if(file.isEmpty()){
res.setRet_code(UserCodeEnum.ERR_FILE_NULL.getCode());
res.setRet_msg(UserCodeEnum.ERR_FILE_NULL.getDesc());
}else{
logger.info("UserController-upload-request-file=" + file.getOriginalFilename());
String tempFileName = file.getOriginalFilename();
//fastDFSæ¹å¼
ClassPathResource cpr = new ClassPathResource("fdfs_client.conf");
ClientGlobal.init(cpr.getClassLoader().getResource("fdfs_client.conf").getPath());
byte[] fileBuff = file.getBytes();
String fileId = "";
String fileExtName = tempFileName.substring(tempFileName.lastIndexOf("."));
//建ç«è¿æ¥
TrackerClient tracker = new TrackerClient();
TrackerServer trackerServer = tracker.getConnection();
StorageServer storageServer = null;
StorageClient1 client = new StorageClient1(trackerServer, storageServer);
//设置å ä¿¡æ¯
NameValuePair[] metaList = new NameValuePair[3];
metaList[0] = new NameValuePair("fileName", tempFileName);
metaList[1] = new NameValuePair("fileExtName", fileExtName);
metaList[2] = new NameValuePair("fileLength", String.valueOf(file.getSize()));
//ä¸ä¼ æ件
fileId = client.upload_file1(fileBuff, fileExtName, metaList);
res.setHead_img(UserConstants.FILE_IMG_URL+fileId);
res.setRet_code(UserCodeEnum.SUCCESS.getCode());
res.setRet_msg(UserCodeEnum.SUCCESS.getDesc());
}
logger.info("UserController-upload-response-" + JsonUtils.o2j(res));
} catch (Exception e) {
res.setRet_code(UserCodeEnum.ERR_UNKNOWN.getCode());
res.setRet_msg(UserCodeEnum.ERR_UNKNOWN.getDesc());
logger.error("UserController-upload-error", e);
}
return res;
}
fileIdæ¯fastDFSè¿åçæ件路å¾ï¼fastDFSæ¯å¯ä»¥ä½¿ç¨èªå¸¦çwebæå¡è®¿é®æ件ï¼ä¹å¯ä»¥éæ第ä¸æ¹ä¾å¦nginxã
fastDFS java客æ·ç«¯é ç½®æ件fdfs_client.confé ç½®å¦ä¸ï¼
connect_timeout = 30
network_timeout = 60
charset = ISO8859-1
http.tracker_http_port = 8090
http.anti_steal_token = no
http.secret_key = 123456
tracker_server = 192.168.11.***:22122
è³æ¤å®æï¼éè¿ç½é¡µç®åæµè¯å³å¯ï¼æ³¨æ表åå称åºä¸æ¥å£ä¸ç´ï¼å½å为file