亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么實現整合文件上傳到FastDFS

發布時間:2022-02-28 09:18:56 來源:億速云 閱讀:215 作者:小新 欄目:開發技術

這篇文章主要介紹Java怎么實現整合文件上傳到FastDFS,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

    1.引入fastdfs依賴到pom.xml

            <dependency>
                <groupId>com.github.tobato</groupId>
                <artifactId>fastdfs-client</artifactId>
                <version>1.26.5</version>
            </dependency>

    2.上傳代碼如下

    上傳純文件流

        /**
         * 文件上傳
         * @param file MultipartFile類型
         * @return url
         */
        @Override
        public String fileUpload(MultipartFile file) throws Exception {
            try {
                return upload(file);
            } catch (Exception e) {
                e.printStackTrace();
            }
            throw new Exception();
        }

    上傳網絡資源鏈接:

        /**
         * 文件上傳
         * @param urlStr url地址
         * @return url
         */
        @Override
        public String fileUpload(String urlStr) throws Exception {
            try {
                //把地址轉換成URL對象
                URL url = new URL(urlStr);
                //創建http鏈接
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                //設置超時間為3秒
                conn.setConnectTimeout(3*1000);
                //防止屏蔽程序抓取而返回403錯誤
                conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)");
                //得到輸入流
                InputStream inputStream = conn.getInputStream();
                //截取鏈接中的文件名
                String fileName= urlStr.substring(urlStr.lastIndexOf("/")+1);
                MultipartFile multipartFile = new MockMultipartFile(fileName,fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
                //返回結果集
                return upload(multipartFile);
            } catch (Exception e) {
                e.printStackTrace();
            }
            throw new Exception();
     
        }

    整體代碼如下:

    package com.tfjybj.arpro.crawl.service.impl;
     
    import com.github.tobato.fastdfs.domain.fdfs.StorePath;
    import com.github.tobato.fastdfs.service.FastFileStorageClient;
    import com.tfjybj.arpro.crawl.service.FileUploadService;
    import com.tfjybj.arpro.crawl.util.CommonConfigurationUtil;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.commons.lang3.StringUtils;
    import org.apache.http.entity.ContentType;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.mock.web.MockMultipartFile;
    import org.springframework.stereotype.Service;
    import org.springframework.web.multipart.MultipartFile;
     
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.URL;
     
    /**
     * 文件上傳業務類
     *
     * @author Promsing(張有博)
     * @version 1.0.0
     * @since 2022/2/25 - 20:01
     */
    @Service
    @Slf4j
    public class FileUploadServiceImpl implements FileUploadService {
     
        @Autowired
        private FastFileStorageClient fastFileStorageClient;
     
     
        // 獲取配置文件中的配置IP地址
        @Value("${fdfs.realIp}")
        private String realIp;
        // 獲取配置文件中的配置分組
        @Value("${fdfs.groupName}")
        private String group;
     
     
     
        /**
         * 文件上傳
         * @param file MultipartFile類型
         * @return url
         */
        @Override
        public String fileUpload(MultipartFile file) throws Exception {
            try {
                return upload(file);
            } catch (Exception e) {
                e.printStackTrace();
            }
            throw new Exception();
        }
     
        /**
         * 文件上傳
         * @param urlStr url地址
         * @return url
         */
        @Override
        public String fileUpload(String urlStr) throws Exception {
            try {
                //把地址轉換成URL對象
                URL url = new URL(urlStr);
                //創建http鏈接
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                //設置超時間為3秒
                conn.setConnectTimeout(3*1000);
                //防止屏蔽程序抓取而返回403錯誤
                conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)");
                //得到輸入流
                InputStream inputStream = conn.getInputStream();
                //截取鏈接中的文件名
                String fileName= urlStr.substring(urlStr.lastIndexOf("/")+1);
                MultipartFile multipartFile = new MockMultipartFile(fileName,fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
                //返回結果集
                return upload(multipartFile);
            } catch (Exception e) {
                e.printStackTrace();
            }
            throw new Exception();
     
        }
     
        /**
         * 文件上傳
         * @param file 需要上傳的文件
         * @return 上傳后的文件地址
         */
        public String upload(MultipartFile file) {
            try {
                // 1.文件信息校驗
                if (file.isEmpty()) {
                    log.debug("需要上傳的文件信息不通過");
                    return null;
                }
                // 2.保存圖片到fastDFS服務器
                //2.1 獲取文件后綴名
                String extension = StringUtils.substringAfterLast(file.getOriginalFilename(), ".");
                //2.2 保存
                StorePath storePath = fastFileStorageClient.uploadFile(group, file.getInputStream(), file.getSize(), extension);
                // 獲取附件的完整地址
                String Path = CommonConfigurationUtil.HTTP + CommonConfigurationUtil.ECOLON + CommonConfigurationUtil.DOUBLE_SLASH + realIp + CommonConfigurationUtil.SINGLE_SLASH + storePath.getFullPath();
                log.info("文件上傳成功,文件地址:" + Path);
                return Path;
            } catch (Exception ex) {
                ex.printStackTrace();
                return null;
            }
        }
     
    }

    3.配置文件如下

    # 文件服務器基礎配置
    fdfs:
      groupName: ar
      so-timeout: 1500
      connect-timeout: 600
      tracker-list: d-fastdfs.xxxx.com:22122
      replace-ip:
        source: d-fastdfs.xxxx.com
        dest: d-fastdfs.xxxx.com
      realIp: d-fastdfs.xxxx.com

    4.上傳效果如下

    Java怎么實現整合文件上傳到FastDFS

    無論是純文件上傳還是以網絡資源鏈接的形式上傳都是文件流上傳的形式。

    以上是“Java怎么實現整合文件上傳到FastDFS”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    云阳县| 大足县| 洮南市| 丰县| 遂川县| 左权县| 若尔盖县| 奇台县| 华阴市| 奉化市| 乌拉特前旗| 铁岭市| 仲巴县| 义乌市| 宿迁市| 博湖县| 吉木萨尔县| 工布江达县| 应城市| 平定县| 肇庆市| 白银市| 华蓥市| 西乌| 长宁区| 昔阳县| 大竹县| 禄劝| 建平县| 郎溪县| 孝昌县| 封开县| 渑池县| 泗洪县| 牙克石市| 大同县| 黎城县| 子洲县| 武冈市| 南昌县| 凤翔县|