uploadimagecontroller.java

来自「java写的blog」· Java 代码 · 共 74 行

JAVA
74
字号
/*
 * Created on 2004-10-9
 * Author: Xuefeng, Copyright (C) 2004, Xuefeng.
 */
package org.crystalblog.web;

import java.util.*;

import javax.servlet.http.*;

import org.crystalblog.domain.*;
import org.crystalblog.logic.Facade;

import org.springframework.web.multipart.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

/**
 * Upload an image.
 * 
 * @author Xuefeng
 */
public class UploadImageController implements Controller {

    private String baseDir = null;
    private Facade facade;

    public void setFacade(Facade facade) { this.facade = facade; }

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        if(baseDir==null) {
            synchronized(this) {
                baseDir = request.getSession().getServletContext().getRealPath("/upload/");
                if(!baseDir.endsWith("/") && !baseDir.endsWith("\\"))
                    baseDir = baseDir + "/";
                System.out.println("[INFO] Set upload dir = " + baseDir);
            }
        }

        Identity id = Identity.getIdentity(request);
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

        int categoryId = Integer.parseInt(multipartRequest.getParameter("categoryId"));
        String title = multipartRequest.getParameter("title");

        // get file:
        MultipartFile file = multipartRequest.getFile("file");
        System.out.println("File: " + file.getOriginalFilename());
        String filename = file.getOriginalFilename();
        int n = filename.lastIndexOf(".");
        if(n==(-1))
            throw new IllegalArgumentException("The image file is invalid. Only \".gif\", \".jpg\" and \".png\" formats are allowed.");
        String type = filename.substring(n);

        Image image = new Image();
        image.setCategoryId(categoryId);
        image.setTitle(title);
        image.setVisible("0".equals(request.getParameter("visible")) ? false : true);
        image.setImageType(type);
        // create image:
        System.out.println("contextPath=" + request.getContextPath());
        facade.createImage(id, image, baseDir, file.getInputStream());

        // show result:
        Map map = new HashMap();
        map.put("account", facade.getAccount(id.getAccountId()));
        map.put("position", "Manage >> Result");
        map.put("message", "The image has been uploaded successfully!");
        map.put("url", "manageImage.c?categoryId=" + categoryId);
        return new ModelAndView("/manage/result.html", map);
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?