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

angularjs + springmvc 上传和下载的更多相关文章

  1. webAPI+angularJS文件上传和下载

    开发框架 前端 angularJS1.6 下载和保存文件FileSaver:https://github.com/eligrey/FileSaver.js/ 后端 .net WebAPI 1 导入Ex ...

  2. myBatis + SpringMVC上传、下载文件

    摘自: http://limingnihao.iteye.com/blog/1069503 环境:maven+SpringMVC + Spring + MyBatis + MySql 本文主要说明如何 ...

  3. springMVC上传和下载附件

    上传: 导入需要的jar包:Spring MVC类库 + 文件上传下载需要的JAR包,图中A处为文件上传下载需要的JAR包,其余为Spring MVC类库. 构建领域模层:model层和control ...

  4. springmvc上传,下载

    参考: 上传: 如下代码,可将上传内容复制到上传地址 file.transferTo(new File(realPath + File.separator + realName)); http://b ...

  5. SpringMVC上传下载

    springmvc上传和下载功能 写在一个简单的示例在线基准码 1.导入的必要性jar包:ant.jar.commons-fileupload.jar.connom-io.jar. 当然spring ...

  6. Spring MVC 上传、下载、显示图片

    目录 1. 准备工作 1.1 数据库表准备 1.2 实体类 User 和 Mapper(DAO) 1.3 pom.xml 依赖包 1.4 SSM 框架的整合配置 2. 控制器 UserControll ...

  7. SpringMVC文件上传和下载

    上传与下载 1文件上传 1.1加入jar包 文件上传需要依赖的jar包 1.2配置部件解析器 解析二进制流数据. <?xml version="1.0" encoding=& ...

  8. 在SpringMVC框架下实现文件的 上传和 下载

    在eclipse中的javaEE环境下:导入必要的架包 web.xml的配置文件: <?xml version="1.0" encoding="UTF-8" ...

  9. 使用springMVC实现文件上传和下载之环境配置与上传

    最近的项目中用到了文件的上传和下载功能,任务分配给了其他的同时完成.如今项目结束告一段落,我觉着这个功能比较重要,因此特意把它提取出来自己进行了尝试. 一. 基础配置: maven导包及配置pom.x ...

随机推荐

  1. spilt用法简介

    //获取墓位位置 string MWFLMC = "和平区祥和园D组A碑11排"; //得到字符数组 ]; //分割字符数组 sArray1 = MWFLMC.Split(] { ...

  2. 图解SVD分解

    参考 http://www.bfcat.com/index.php/2012/03/svd-tutorial/

  3. [NOIP1999]拦截导弹

    1999年NOIP全国联赛提高组 题目描述 Description     某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但 ...

  4. Java语言使用HttpClient模拟浏览器登录

    使用HttpClient来模拟浏览器登录网站,然后可以进行操作,比如发布信息等 第一步:获取实际的post网址,(不考虑复杂情况下) 1.需要使用到firefox的httpfox插件,httpfox中 ...

  5. jdk 中Runtime之单例模式 学习

    这段代码是我从源码中截取的,大家很容易看到currentRuntime是一个静态变量,getRunTime对应的就是getInstacne.不是说这种方法不好吗? public class Runti ...

  6. oracle rac 学习(转载)

    一. RAC 并发 RAC 的本质是一个数据库,运行在多台计算机上的数据库,它的主要任务是数据库就是事务处理,它通过 Distributed Lock Management(DLM:分布式锁管理器)  ...

  7. MapReduce自定义类输出的内容为内存地址

    13480253104 mapreduce.KpiWritable@486a58c4 13502468823 mapreduce.KpiWritable@3de9d100 13560439658 ma ...

  8. HW2.10

    import javax.swing.JOptionPane; public class Solution { public static void main(String[] args) { Str ...

  9. 11.编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果。把圆周率π定义为常量,半径定义为变量,然后进行计算并输出结果。

    package com.hanqi.yzljs; public class yzljs { public static void main(String[] args) {     final dou ...

  10. Android之发送短信和接收验证码

      最近项目需求需要发送短信和接收验证码并将验证码显示在输入框中 以下是我的记录    前提---权限     <uses-permission android:name="andro ...