com.css.common.upload.servlet关于文件上传的代码

简介: package com.css.common.upload.servlet; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.servlet.Ser

package com.css.common.upload.servlet;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.css.common.image.ImageUtil;
import com.css.common.util.FileUploadUtil;

@SuppressWarnings("serial")
public class FileUploadServlet extends HttpServlet {

 @Override
 public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
  this.doPost(request, response);
 }
 
 @Override
 @SuppressWarnings("unchecked")
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
       
        DiskFileItemFactory fac = new DiskFileItemFactory();
       
        ServletFileUpload upload = new ServletFileUpload(fac);
       
        upload.setHeaderEncoding("utf-8");
       
        List fileList = null;
       
        try {
            fileList = upload.parseRequest(request);
        } catch (FileUploadException ex) {
         response.getWriter().print("ERROR:" + ex.getMessage());
         return;
        }
       
        Iterator<FileItem> it = fileList.iterator();
       
        /** 上传路径 */
        String upload_path = "";
        /** 返回类型 */
        String return_type = "";
        /** 用于处理多个文件 */
        List<FileItem> itemList = new ArrayList<FileItem>();
       
        while (it.hasNext()) {
         FileItem item = it.next();
         if (item.isFormField()) {
          String formFileName = item.getFieldName();
          if ("upload_path".equals(formFileName)) {
           upload_path = item.getString();
          } else if ("return_type".equals(formFileName)) {
           return_type = item.getString();
          }
         } else {
             itemList.add(item);
            }
        }
       
        if (! upload_path.endsWith("/")) {
         upload_path += "/";
        }
       
        upload_path += FileUploadUtil.getCurrentYMR("/");
       
        File dir = new File(upload_path);
        if (! dir.exists()) {
         dir.mkdirs();
        }
       
        /** 用于返回页面显示 多个之间","分割 */
        String returnString = "";
       
        for (FileItem fileItem : itemList) {
         String fileName = fileItem.getName();
           
            if (fileName == null || fileName.trim().equals("")) {
                return;
            }
           
            String postfix = "";
            if (fileName.lastIndexOf(".") >= 0) {
             postfix = fileName.substring(fileName.lastIndexOf(".") + 1);
            }
           
            /** 文件名称 */
            fileName = FileUploadUtil.getCurrentYMR("_") + "_" + FileUploadUtil.createUnique() + "." + postfix;
           
            /** 文件绝对路径 */
            String filePath = upload_path + "/" + fileName;
           
            File saveFile = new File(filePath);
            try {
             
             fileItem.write(saveFile);
             
             /** 1 表示上传文件并返回[文件名.扩展名]
              *  2 表示上传图片并生成(商品封面图片)缩略图
              *  3 表示上传图片并生成(商品相册图片)缩略图
              *  4 表示上传图片并生成(会员头像)缩略图
              */
             if ("1".equals(return_type)) {
           returnString = returnString + FileUploadUtil.getCurrentYMR("/") + "/" + fileName;
          } else if ("2".equals(return_type)) {
           String width_height = ImageUtil.getInstance().getWidthHeight(filePath);
           ImageUtil.getInstance().createGoodsImg(filePath, filePath + "_" + width_height, postfix, width_height);
           returnString = returnString + FileUploadUtil.getCurrentYMR("/") + "/" + fileName + "_" + width_height + ",";
          } else if ("3".equals(return_type)) {
           String width_height = ImageUtil.getInstance().getWidthHeight(filePath);
           ImageUtil.getInstance().createGoodsAlbumImg(filePath, filePath + "_" + width_height, postfix, width_height);
           returnString = returnString + FileUploadUtil.getCurrentYMR("/") + "/" + fileName + "_" + width_height + ",";
          } else if ("4".equals(return_type)) {
           String w_h = ImageUtil.getInstance().createHeadpicImg(filePath, filePath, postfix);
           returnString = returnString + FileUploadUtil.getCurrentYMR("/") + "/" + fileName + "&" + w_h + ",";
          }
             
            } catch (Exception e) {
             response.getWriter().print("ERROR:" + e.getMessage());
             return;
            }
        }
       
        /** 多张图片 则去掉后面"," */
        if (returnString.endsWith(",")) {
         returnString = returnString.substring(0, returnString.length() - 1);
        }
       
        response.getWriter().print("SUCCESS:" + returnString);
    }
}

 

 

目录
相关文章
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
999 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
925 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
编解码 前端开发
编写代码中常见问题汇总(html和css)
编写代码中常见问题汇总(html和css)
346 0
|
XML 数据格式
Servlet 教程 之 Servlet 文件上传 3
该教程介绍了如何使用Servlet进行文件上传。在web.xml中配置了Servlet `UploadServlet`,类为`com.baidu.test.UploadServlet`,映射路径为`/TomcatTest/UploadServlet`。用户需通过创建的HTML表单提交文件,访问URL为:http://localhost:8080/TomcatTest/upload.jsp。
228 0
|
编解码 前端开发
编写代码中常见问题汇总(html和css)
text-indent用于首行缩进,line-height与height相同实现垂直居中;vertical-align:middle用于行内元素居中;text-align:center做水平居中;list-style:none清除列表符号;overflow:hidden隐藏溢出;background-repeat:no-repeat阻止平铺;float:left实现横排;相对定位父元素,绝对定位子元素;box-sizing调整盒子模型;用边框或overflow解决盒子塌陷;
426 158
css3实现3D数字时钟滚动特效代码
css3实现3D数字时钟滚动特效代码
571 18
纯css3发光霓虹灯文字闪烁特效代码
纯css3发光霓虹灯文字闪烁特效代码是一款彩色的店铺名称文字动画特效。
287 6
纯css3加载loading发光变色动画代码
纯css3加载loading发光变色动画特效代码是一款基于css3 keyframes属性实现的发光变色圆点串联旋转loading加载动画
302 2
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
631 6
|
前端开发
简单几行代码CSS实现网页自动打文字效果
简单几行代码CSS实现网页自动打文字效果
315 1
简单几行代码CSS实现网页自动打文字效果

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    589
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    447
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    452
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    297
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    575
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    748
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1466
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    325
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1185
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    526