zoukankan      html  css  js  c++  java
  • struts利用插件jqueryupload上传文件,后台处理文件代码

    package cn.axhu.education.action.file;

    import cn.axhu.education.common.FileSystemConfig;
    import cn.axhu.education.common.utils.FileUtils;
    import net.ruixin.web.struts2.SimpleActionSupport;
    import org.apache.struts2.convention.annotation.Action;
    import org.apache.struts2.convention.annotation.Namespace;
    import org.apache.struts2.convention.annotation.ParentPackage;
    import org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper;
    import org.json.JSONObject;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import java.util.*;

    /**
     * Created by yi.wang1 on 2015/3/9.
     */
    @ParentPackage("default")
    @Namespace("/file")
    public class ChapterAttachUploadAction extends SimpleActionSupport {

        @Action("saveAttachFile")
        public void saveAttachFile() {
            PrintWriter out = null;
            try {
                //初始化变量
                InputStream stream = null;
                String ret_fileName = null;//返回给前端已修改的文件名称
                Map<String, Object> result = new HashMap<String, Object>();
                String ret_filePath;
                File uploadedFile;
                String uuid_fileName;
                try {
                    //设置字符集
                    request.setCharacterEncoding("UTF-8");
                    response.setContentType("text/html; charset=UTF-8");
                    out = response.getWriter();

                    // 文件保存目录路径
                    String savePath = FileSystemConfig.getFileRootPath() + "chapterAttach/";

                    // 创建文件夹
                    File dirFile = new File(savePath);
                    if (!dirFile.exists()) {
                        dirFile.mkdirs();
                    }
                    //获取文件流
                    MultiPartRequestWrapper multiWrapper = (MultiPartRequestWrapper) request;
                    if (multiWrapper.hasErrors()) {
                        for (Iterator errorIter = multiWrapper.getErrors().iterator(); errorIter.hasNext(); ) {
                            String error = (String) errorIter.next();
                            LOG.error(error);
                        }
                    }
                    File file = null;
                    Enumeration fileParameterNames = multiWrapper.getFileParameterNames();
                    while (fileParameterNames != null && fileParameterNames.hasMoreElements()) {
                        String inputName = (String) fileParameterNames.nextElement();
                        String[] contentType = multiWrapper.getContentTypes(inputName);
                        if (contentType != null) {
                            String[] fileName = multiWrapper.getFileNames(inputName);
                            if (fileName != null) {
                                ret_fileName = fileName[0];
                                File[] files = multiWrapper.getFiles(inputName);
                                file = files[0];
                            }
                        }
                    }
                    stream = new FileInputStream(file);

                    //初始化文件名,并定义上传文件
                    UUID uuid = UUID.randomUUID();
                    String suffix = ret_fileName.substring(ret_fileName.lastIndexOf(".") + 1);
                    uuid_fileName = uuid.toString() + "." + suffix;
                    ret_filePath = savePath + "/" + uuid_fileName + ".temp";
                    uploadedFile = new File(ret_filePath);
                    FileUtils.saveFile(uploadedFile, stream);
                } catch (Exception e) {
                    //读写错误异常处理
                    result.put("message", e.getMessage());
                    out.print(new JSONObject(result).toString());
                    return;
                } finally {
                    //资源关闭异常处理
                    try {
                        if (stream != null) {
                            stream.close();
                        }
                    } catch (Exception e) {
                        result.put("message", e.getMessage());
                        out.print(new JSONObject(result).toString());
                        return;
                    }
                }
                result.put("message", "success");
                result.put("fileName", ret_fileName);
                result.put("filePath", "chapterAttach/" + uuid_fileName + ".temp");
                out.print(new JSONObject(result).toString());
            } finally {
                //将信息返回
                if (out != null) {
                    out.flush();
                    out.close();
                }
            }
        }

    }

  • 相关阅读:
    Relax! It's just a game(排列组合,简单)
    Feynman(数学)
    The Center of Gravity(一道很很简单的几何题)
    Game with points(数学,难度中)
    Tempter of the Bone(DFS + 奇偶剪枝,好题)
    [置顶] Card
    Find Terrorists(素数筛选+素因子分解)
    Enemy at the Gateway
    Anindilyakwa(简单)
    ACMer(数学,有意思)
  • 原文地址:https://www.cnblogs.com/gtaxmjld/p/4330157.html
Copyright © 2011-2022 走看看