package com.lst.lc.web.frontend.controller; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.lst.lc.dao.CourseDao; import com.lst.lc.dao.LessonDao; import com.lst.lc.dao.UserDao; import com.lst.lc.entities.Course; import com.lst.lc.entities.User; import com.lst.lc.utils.MagickPic; import com.lst.lc.utils.PathUtils; import com.lst.lc.web.bean.MyCaptcha; import com.lst.lc.web.service.CaptchaHandler; @Controller @RequestMapping("/read") public class ReadResourcesController { @Autowired @Qualifier("courseDao") private CourseDao courseDao; @Autowired @Qualifier("userDao") private UserDao userDao; @Autowired @Qualifier("lessonDao") private LessonDao lessonDao; @Autowired private CaptchaHandler captchaHandler; @RequestMapping(value = "/photo/{courseId}", method = RequestMethod.GET) public void readPhotos(@PathVariable int courseId, HttpServletResponse response) { Course course = courseDao.getCourse(courseId); String imagePath = course.getImageUrl(); PathUtils.readPhoto(imagePath, response); } @RequestMapping(value = "/thumb/{courseId}", method = RequestMethod.GET) public void readthumb(@PathVariable int courseId, String width, String height, HttpServletResponse response) { Course course = courseDao.getCourse(courseId); String imagePath = course.getImageUrl(); //PathUtils.readPhoto(imagePath, response); MagickPic magickPic = new MagickPic(); byte[] bytes = magickPic.scaleImage(imagePath, width, height); try { OutputStream os = response.getOutputStream(); os.write(bytes); os.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @RequestMapping(value = "/avatar/{userId}", method = RequestMethod.GET) public void readAvatar(@PathVariable int userId, HttpServletResponse response){ User user = userDao.getById(userId); String avatarPath = user.getAvatar(); PathUtils.readPhoto(avatarPath, response); } @RequestMapping(value = "/video/{lessonId}", method = RequestMethod.GET) public void readVideo(@PathVariable int lessonId, HttpServletResponse response){ String videoPath = lessonDao.getLesson(lessonId).getVideoUrl(); PathUtils.readPhoto(videoPath, response); } @RequestMapping(value = "/captcha", method = RequestMethod.GET) public void getCaptcha(HttpServletResponse response, HttpSession session) { response.setContentType("image/png"); response.setHeader("cache", "no-cache"); OutputStream outputStream; try { outputStream = response.getOutputStream(); MyCaptcha myCaptcha = captchaHandler.getCatpcha(); // 取得验证码字符串放入Session String validationCode = myCaptcha.getCode(); session.setAttribute("validationCode", validationCode); // 取得验证码图片并输出 BufferedImage bufferedImage = myCaptcha.getBufferedImage(); ImageIO.write(bufferedImage, "png", outputStream); outputStream.flush(); outputStream.close(); } catch (IOException e1) { e1.printStackTrace(); } } }