zoukankan      html  css  js  c++  java
  • angularjs + springmvc 上传和下载

    jsp:

    <form ng-submit="uploadFile()" class="form-horizontal" enctype="multipart/form-data">
                    <input type="file" name="file" ng-model="document.fileInput" id="file" onchange="document.getElementById('filepath').value=this.value;" />
                    <input  name='filepath' id='filepath'>
                    <button class="btn btn-primary" type="submit">
                        Submit
                    </button>
                </form>

    js:

    $scope.uploadFile=function(){
                var formData=new FormData();
                formData.append("file",file.files[0]);
                $http.post(VX.CONFIG.rootPath+'/uploadFile', formData, {
                    transformRequest: function(data, headersGetterFunction) {
                        return data;
                    },
                    headers: { 'Content-Type': undefined }
                }).success(function(data, status) {
                    console.log(data);
                    console.log("Success ... " + status);
                }).error(function(data, status) {
                    console.log("Error ... " + status);
                    console.log(data);
                });
                };

    java:

    package com.nirvanainfo.salesleads.api.controller.common;
    
    import com.nirvanainfo.salesleads.api.utils.Global;
    import com.nirvanainfo.salesleads.api.utils.ImageHandleUtill;
    import com.nirvanainfo.salesleads.api.utils.ResultBean;
    import com.nirvanainfo.salesleads.api.utils.ResultPageBean;
    import com.nirvanainfo.salesleads.service.convert.CsvUtil;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileItemFactory;
    import org.apache.commons.fileupload.FileUpload;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.json.simple.JSONObject;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.multipart.MultipartFile;
    
    import javax.imageio.ImageIO;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.text.NumberFormat;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    /**
     * Created by Choice on 2016/4/25.
     */
    @Controller
    @RequestMapping("uploadFile")
    public class UploadFileController extends BaseController{
    
        private static Log log = LogFactory.getLog(UploadFileController.class);
    
        @RequestMapping("")
        public @ResponseBody Object UploadFile(@RequestParam(value="file", required=true) MultipartFile file,HttpServletRequest request, HttpServletResponse response) {
            PrintWriter out = null;
            try {
    
                //文件保存目录路径
                String savePath = Global.getUploadPath() + "";
    
                //文件保存目录URL
                String saveUrl  = "/";
    
                //定义允许上传的文件扩展名
                HashMap<String, String> extMap = new HashMap<String, String>();
                extMap.put("file", "xls,xlsx,csv");
    
                //最大文件大小
                long maxSize = 20*1024*1024;
    
                response.setContentType("text/html; charset=UTF-8");
                out = response.getWriter();
    
                //获取社群个人文件目录
                String permissionsDir = "";
    
                if(!ServletFileUpload.isMultipartContent(request)){
                    return new ResultBean<>(201, "Please select a file.");
                }
                //检查目录
                File uploadDir = new File(savePath);
                if (!uploadDir.exists()) {
                    uploadDir.mkdirs();
                }
    
                String dirName = request.getParameter("dir");
                if (dirName == null) {
                    dirName = "file";
                }
                //创建文件夹
                savePath += permissionsDir.length() > 0 ? permissionsDir + "/" + dirName + "/" : "/" + dirName + "/";
                saveUrl += permissionsDir.length() > 0 ? permissionsDir + "/" + dirName + "/": "/" + dirName + "/";
                File saveDirFile = new File(savePath);
                if (!saveDirFile.exists()) {
                    saveDirFile.mkdirs();
                }
                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
                String ymd = sdf.format(new Date());
                savePath += ymd + "/";
                saveUrl += ymd + "/";
                File dirFile = new File(savePath);
                if (!dirFile.exists()) {
                    dirFile.mkdirs();
                }
    
                if (dirName.equals("file")) {
                    file.transferTo(new File(savePath+file.getOriginalFilename()));
                    System.out.println(savePath+file.getOriginalFilename());
                    CsvUtil util = new CsvUtil(savePath+file.getOriginalFilename());
                    int rowNum = util.getRowNum();
                    int colNum = util.getColNum();
                    if(rowNum<=101){
                        boolean delResult=deleteFile(savePath+file.getOriginalFilename());
                        if(delResult){
                            log.info("del success");
                        }else{
                            log.info("del fail");
                        }
                        return new ResultBean<>(201, "The content of the file should be at least 100.");
                    }
                    List<String> columns=new ArrayList<String>();
                    for(int j=0;j<colNum;j++){
                        String key=null;
                        key=util.getString(0, j);
                        columns.add(key);
                    }
                    System.out.println(columns);
                    Boolean result=true;
                    if(result){
                        result=columns.contains("FirstName");
                        if(result){
                            result=columns.contains("LastName");
                            if(result){
                                result=columns.contains("Company");
                                if(result){
                                    result=columns.contains("Address1");
                                    if(result){
                                        result=columns.contains("City");
                                        if(result){
                                            result=columns.contains("State");
                                            if(result){
                                                result=columns.contains("Zip");
                                                if(result){
                                                    result=columns.contains("Email");
                                                    if(result){
                                                        result=columns.contains("Phone");
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
    
                    if(!result){
                        boolean delResult=deleteFile(savePath+file.getOriginalFilename());
                        if(delResult){
                            log.info("del success");
                        }else{
                            log.info("del fail");
                        }
                        return new ResultBean<>(201, "File must contain the following columns:FirstName,LastName,Company,Address1,City,State,Zip,Email,Phone.");
                    }
    
                }
            } catch (Exception e) {
                return new ResultBean<>(300, "fail");
            }
            return new ResultBean<>(200, "success");
        }
    
    
        private static boolean deleteFile(String path){
            boolean del=false;
            File file=new File(path);
            if(file.isFile()){
                file.delete();
                del=true;
            }
            return del;
        }
    }

    java上传下载参考:http://www.cnblogs.com/lcngu/p/5471610.html

  • 相关阅读:
    UltraEdit语法高亮解决办法
    tcpdump命令格式及使用
    VS tricks
    git ready
    [FirefoxPlugin]Print pages to Pdf
    Searching and Navigating Code in VS 2010 (VS 2010 and .NET 4.0 Series)
    How to avoid StepInto unnecessary code area?
    Search and Navigation Tips/Tricks with Visual Studio
    squashing commits with rebase
    【原创】钻石继承与虚继承
  • 原文地址:https://www.cnblogs.com/qyhol/p/6202329.html
Copyright © 2011-2022 走看看