首页 > 代码库 > 上传图片至fastdfs分布式文件系统并回显
上传图片至fastdfs分布式文件系统并回显
事件,当我们浏览完图片选中一张时,触发onchange事件将图片上传到服务器并回显、
1 <img width="100" height="100" id="allUrl" src="${brand.imgUrl }"/>2 <input type="hidden" name="imgUrl" id="imgUrl" value="${brand.imgUrl }"/>3 <input type="file" name="pic" onchange="uploadPic()"/>
uploadPic()方法:
1 //上传图片 2 function uploadPic(){ 3 //jquery.form.js 4 var options = { 5 url : "/upload/uploadPic.do", 6 dataType : "json", 7 type : "post", 8 success : function(data){ 9 $("#allUrl").attr("src",data.url);10 $("#imgUrl").val(data.url);11 }12 }13 $("#jvForm").ajaxSubmit(options);14 }
Springmvc配置上传图片
1 <!-- 图片上传 -->2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
FastDFS的Java接口使用
全局配置文件 fdfs_client.conf
# connect timeout in seconds# default value is 30sconnect_timeout=30# network timeout in seconds# default value is 30snetwork_timeout=60# the base path to store log filesbase_path=/home/fastdfs# tracker_server can ocur more than once, and tracker_server format is# "host:port", host can be hostname or ip addresstracker_server=119.29.146.187:22122#tracker_server=119.29.146.187:22122#standard log level as syslog, case insensitive, value list:### emerg for emergency### alert### crit for critical### error### warn for warning### notice### info### debuglog_level=info# if use connection pool# default value is false# since V4.05use_connection_pool = false# connections whose the idle time exceeds this time will be closed# unit: second# default value is 3600# since V4.05connection_pool_max_idle_time = 3600# if load FastDFS parameters from tracker server# since V4.05# default value is falseload_fdfs_parameters_from_tracker=false# if use storage ID instead of IP address# same as tracker.conf# valid only when load_fdfs_parameters_from_tracker is false# default value is false# since V4.05use_storage_id = false# specify storage ids filename, can use relative or absolute path# same as tracker.conf# valid only when load_fdfs_parameters_from_tracker is false# since V4.05storage_ids_filename = storage_ids.conf#HTTP settingshttp.tracker_server_port=80#use "#include" directive to include HTTP other settiongs##include http.conf
工具类:FastDFSUtils
1 public class FastDFSUtil { 2 3 public static String uploadPic(byte[] pic ,String name,long size){ 4 String path = null; 5 //ClientGloble 读配置文件 6 ClassPathResource resource = new ClassPathResource("fdfs_client.conf"); 7 try { 8 ClientGlobal.init(resource.getClassLoader().getResource("fdfs_client.conf").getPath()); 9 //老大客户端10 TrackerClient trackerClient = new TrackerClient();11 TrackerServer trackerServer = trackerClient.getConnection();12 StorageServer storageServer = null;13 StorageClient1 storageClient1 = new StorageClient1(trackerServer, storageServer);14 String ext = FilenameUtils.getExtension(name);15 16 NameValuePair[] meta_list = new NameValuePair[3];17 meta_list[0] = new NameValuePair("fileName",name);18 meta_list[1] = new NameValuePair("fileExt",ext);19 meta_list[2] = new NameValuePair("fileSize",String.valueOf(size));20 21 path = storageClient1.upload_file1(pic, ext, meta_list);22 } catch (Exception e) {23 e.printStackTrace();24 }25 return path;26 }27 }
保存图片到FastDFS分布式文件系统
1 @Service("uploadService")2 public class UploadServiceImpl implements UploadService {3 4 //上传图片5 public String uploadPic(byte[] pic ,String name,long size) {6 7 return FastDFSUtil.uploadPic(pic, name, size);8 }9 }
controller:
1 @Controller 2 public class UploadController { 3 4 @Autowired UploadService uploadService; 5 //上传图片 6 @RequestMapping(value="http://www.mamicode.com/upload/uploadPic.do") 7 public void uploadPic(@RequestParam(required = false) MultipartFile pic,HttpServletResponse response) throws IOException{ 8 9 String path = uploadService.uploadPic(pic.getBytes(), pic.getOriginalFilename(), pic.getSize());10 String url = Constants.img_url+path;11 JSONObject jo = new JSONObject();12 jo.put("url", url);13 response.setContentType("application/json;charset=UTF-8");14 response.getWriter().write(jo.toString());15 }16 }
上传图片至fastdfs分布式文件系统并回显
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。