讀取本地圖片存入數據庫

package com.ray.image.bean.task;java

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;spring

import javax.annotation.Resource;apache

import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.TaskExecutor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;.net

import com.ray.image.bean.dao.ImageDao;
import com.ray.image.bean.pojo.Image;圖片

@Component
public class ImageTask
{
    Logger logger = LoggerFactory.getLogger(ImageTask.class);get

    @Autowired
    ImageDao imageDao;input

    @Resource(name = "taskExecutor")
    private TaskExecutor taskExecutor;string

    @Scheduled(cron = "0 0/1 * * * ?")
    public void doTask()
    {
        logger.info("----------將一個文件夾下的圖片所有入庫的定時任務時任務----------");
        File[] files = new File("D:\\RAY_IMAGE").listFiles();
        addImageToDb(files);
    }io

    private void addImageToDb(File[] files)
    {
        for (final File file : files)
        {
            taskExecutor.execute(new Runnable()
            {
                public void run()
                {
                    try
                    {
                        if (file.isDirectory())
                        {
                            // 1.是文件夾
                            File[] childFiles = new File(file.getAbsolutePath()).listFiles();
                            addImageToDb(childFiles);
                        } else
                        {
                            String fileName = file.getName();
                            long length = file.length();
                            String prefix = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
                            if ("jpeg".equals(prefix) || "jpg".equals(prefix) || "png".equals(prefix) || "gif".equals(prefix) || "bmp".equals(prefix))
                            {
                                FileUtils.copyFileToDirectory(file, new File("D:\\RAY_IMAGE2"), true);
                                InputStream input = new FileInputStream(file);
                                byte[] imageByte = new byte[input.available()];
                                input.read(imageByte);
                                input.close();ast

                                Image image = new Image();
                                image.setName(fileName);
                                image.setImage(imageByte);
                                image.setLength(length);

                                if (file.exists())                                 {                                     if (file.delete())                                     {                                         imageDao.addImage(image);                                     }                                 }                             }                         }                     } catch (FileNotFoundException e)                     {                         e.printStackTrace();                     } catch (IOException e)                     {                         e.printStackTrace();                     }                 }             });         }     } }

相關文章
相關標籤/搜索