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. HDU5668 Circle 非互质中国剩余定理

    分析:考虑对给定的出圈序列进行一次模拟,对于出圈的人我们显然可以由位置,编号等关系得到一个同余方程 一圈做下来我们就得到了n个同余方程 对每个方程用扩展欧几里得求解,最后找到最小可行解就是答案. 当然 ...

  2. Vim 的粘贴复制功能

    Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情.每当学会了vim的一个新功能,就会很大地提高工作效率.有人使用vim几十年,还没有完全掌握vim的功能,这也说明了vim ...

  3. nyoj 括号匹配

    这个方程有两种形式,本文采用 if(s[i]=s[j]) dp[i][j]=d[i-1][j-1]   dp[i][j]=min(dp[i][k]+dp[k+1][j],dp[i][j]) (i=&l ...

  4. platform机制

    最近在看SPI.I2C这样简单点的总线驱动程 序,从Linux2.6起,内核引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver.现在Linux中 大部分的 ...

  5. Java笔记(二十七)……IO流中 File文件对象与Properties类

    File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 booleancreateNewFile():创建新文件,如果 ...

  6. Storm系列(五)架构分析之Nimbus启动过程

    启动流程图   mk-assignments 功能:对当前集群中所有Topology进行新一轮的任务调度. 实现源码路径: \apache-storm-0.9.4\storm-core\src\clj ...

  7. php学习小记2 类与对象

    php类的一些特性: 1. 伪变量$this.$this是一个到主叫对象的引用.取值:该方法所从属的对象,可能是另外的对象(前提,当该方法被静态调用时).$this变量存在于一个类的非静态方法中,在静 ...

  8. cloud-utils cloud-utils-growpart cloud-init

  9. CodeForces 540D--Bad Luck Island(概率DP)

    貌似竟然是我的第一道概率DP.. 手机码代码真不舒服.... /************************************************ Memory: 67248 KB Ti ...

  10. PC-XP系统忘记密码怎么办

    (一)以恢复本地用户"*****"口令为例,来说明解决忘记登录密码的步骤:1.重新启动计算机,在启动画面出现后马上按下F8键,选择"带命令行的安全模式".2.运 ...