商品图片上传(使用FastDFS)

在商品录入界面实现多图片上传


当用户点击新建按钮,弹出上传窗口

工程pom.xml引入依赖

         <!-- 文件上传组件 -->

         <dependency>

             <groupId>org.csource.fastdfs</groupId>

             <artifactId>fastdfs</artifactId>

         </dependency>

         <dependency>

             <groupId>commons-fileupload</groupId>

             <artifactId>commons-fileupload</artifactId>

         </dependency>   

新建fastdfs工具类

         // 1、加载配置文件,配置文件中的内容就是 tracker 服务的地址。
		ClientGlobal.init("D:/maven_work/fastDFS-demo/src/fdfs_client.conf");
		// 2、创建一个 TrackerClient 对象。直接 new 一个。
		TrackerClient trackerClient = new TrackerClient();
		// 3、使用 TrackerClient 对象创建连接,获得一个 TrackerServer 对象。
		TrackerServer trackerServer = trackerClient.getConnection();
		// 4、创建一个 StorageServer 的引用,值为 null
		StorageServer storageServer = null;
		// 5、创建一个 StorageClient 对象,需要两个参数 TrackerServer 对象、StorageServer 的引用
		StorageClient storageClient = new StorageClient(trackerServer, storageServer);
		// 6、使用 StorageClient 对象上传图片。
		//扩展名不带“.”
		String[] strings = storageClient.upload_file("D:/pic/benchi.jpg", "jpg",
				null);
		// 7、返回数组。包含组名和图片的路径。
		for (String string : strings) {
			System.out.println(string);
		}

(1)将“资源/fastDFS/配置文件”文件夹中的fdfs_client.conf 拷贝到pinyougou-shop-web工程config文件夹

(2)在pinyougou-shop-web工程application.properties添加配置

FILE_SERVER_URL=http://192.168.25.133/

(3)在pinyougou-shop-web工程springmvc.xml添加配置:

<!-- 配置多媒体解析器 -->

<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>

控制层

在pinyougou-shop-web新建UploadController.java

package com.pinyougou.shop.controller;

import org.springframework.beans.factory.annotation.Value;

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

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

import org.springframework.web.multipart.MultipartFile;

import entity.Result;

import util.FastDFSClient;

/**

 * 文件上传Controller

 * @author Administrator

 *

 */

@RestController

publicclass UploadController {

   

    @Value("${FILE_SERVER_URL}")

    private String FILE_SERVER_URL;//文件服务器地址

 

    @RequestMapping("/upload")

    public Result upload( MultipartFile file){             

         //1、取文件的扩展名

         String originalFilename = file.getOriginalFilename();

         String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);

         try {

//2、创建一个 FastDFS 的客户端

             FastDFSClient fastDFSClient 

= new FastDFSClient("classpath:config/fdfs_client.conf");

             //3、执行上传处理

             String path = fastDFSClient.uploadFile(file.getBytes(), extName);

             //4、拼接返回的 urlip 地址,拼装成完整的 url

             String url = FILE_SERVER_URL + path;          

             returnnew Result(true,url);          

         } catch (Exception e) {

             e.printStackTrace();

             returnnew Result(false, "上传失败");

         }       

    }  

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值