启动注册中心zookeeper。
进入zookeeper-bin使用命令:./zkServer.sh start
由于安装图片服务器的时候,把网段改了。所以,项目中的网段全部要修改:17改成25.
该install的install。然后启动项目。先manage,后web。
一、功能分析
图片上传的功能还没实现。
e3-manager-web->WEB-INF->jsp->item-add.jsp
参考资料上的截图:
使用的是KindEditor的多图片上传插件。
KindEditor 4.x 文档
请求的url:/pic/upload
参数:MultiPartFileuploadFile
返回值:可以创建一个pojo对应返回值。可以使用map
业务逻辑:
1、接收页面传递的图片信息uploadFile
2、把图片上传到图片服务器。使用封装的工具类实现。需要取文件的内容和扩展名。
3、图片服务器返回图片的url
4、将图片的url补充完整,返回一个完整的url。
5、把返回结果封装到一个Map对象中返回。
1、需要把commons-io、fileupload 的jar包添加到工程中。
去e3-parent的pom.xml中找到fileupload,然后,加到web项目中
2、配置多媒体解析器。
<!-- 定义文件上传解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设定默认编码 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 设定文件上传的最大值5MB,5*1024*1024 -->
<property name="maxUploadSize" value="5242880"></property>
</bean>
二、controller
这样,在controller中就可以注入这个值了。
@Controller
public class PictureController {
@Value("${IMAGE_SERVER_URL}")
private String IMAGE_SERVER_URL;
@RequestMapping("/pic/upload")
@ResponseBody
public Map fileUpload(MultipartFile uploadFile) {
try {
// 1、取文件的扩展名
String originalFilename = uploadFile.getOriginalFilename();
String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
// 2、创建一个FastDFS的客户端
FastDFSClient fastDFSClient = new FastDFSClient("classpath:conf/client.conf");
// 3、执行上传处理
String path = fastDFSClient.uploadFile(uploadFile.getBytes(), extName);
// 4、拼接返回的url和ip地址,拼装成完整的url
String url = IMAGE_SERVER_URL + path;
// 5、返回map
Map result = new HashMap<>();
result.put("error", 0);
result.put("url", url);
return result;
} catch (Exception e) {
e.printStackTrace();
// 5、返回map
Map result = new HashMap<>();
result.put("error", 1);
result.put("message", "图片上传失败");
return result;
}
}
}
三、测试
该install的install,然后重启项目。
图片能回显,说明上传成功。