当前位置: 首页 > news >正文

AngularJS下 $http 上传文件

 作为记录,也希望对别人有帮助

// 以下是html代码
<div style="border: 1px solid red;"> <h2>上传pdf文件</h2><input type="file" name="file" id="file" accept=".pdf"  onchange="angular.element(this).scope().uploadDoc(this.files)">
</div>// 以下是js代码// pdf 文件上传 已后台调通过试$scope.uploadDoc=function() { var formData = new FormData();var file = document.getElementById('file').files[0];if(file.name){var fileName = file.name.substring(file.name.lastIndexOf(".") + 1);if(fileName =="pdf"){formData.append('file', file);$http({method:"post",url:$rootScope.url.newapp +"enote/v2/upload-wx-pdf/",data:formData,headers : {'Content-Type' : undefined},transformRequest : angular.identity}).then(function (response) {if(response.status == 200){alert("文件上传成功!!!");}else{alert("文件上传失败!!!");}});}else{alert("文件格式不正确,请上传以.xlsx,.xls 为后缀名的文件。");$("#file_asset").val("");}}};//以下是springboot  后台代码
public EnoteAgentTaskBean upLoadWxPdf(HttpServletResponse resp,@RequestParam(value="file",required=false)MultipartFile file) {EnoteAgentTaskBean resultVo = new EnoteAgentTaskBean();// 先设定一个放置上传文件的文件夹(该文件夹可以不存在,下面会判断创建)String deposeFilesDir = "D:\\file\\";
//        // 判断文件手否有内容if (file.isEmpty()) {System.out.println("该文件无任何内容!!!");return resultVo;}// 获取附件原名(有的浏览器如chrome获取到的是最基本的含 后缀的文件名,如myImage.png)// 获取附件原名(有的浏览器如ie获取到的是含整个路径的含后缀的文件名,如 // C:\\Users\\images\\myImage.png)String fileName = file.getOriginalFilename();// 如果是获取的含有路径的文件名,那么截取掉多余的,只剩下文件名和后缀名int index = fileName.lastIndexOf("\\");if (index > 0) {fileName = fileName.substring(index + 1);}// 判断单个文件大于1M
//        long fileSize = file.getSize();
//        if (fileSize > 1024 * 1024) {
//            System.out.println("文件大小为(单位字节):" + fileSize);
//            System.out.println("该文件大于1M");
//        }// 当文件有后缀名时
//        if (fileName.indexOf(".") >= 0) {
//            // split()中放正则表达式; 转义字符"\\."代表 "."
//            String[] fileNameSplitArray = fileName.split("\\.");
//            // 加上random戳,防止附件重名覆盖原文件
//            //fileName = fileNameSplitArray[0] + (int) (Math.random() * 100000) + "." + //             fileNameSplitArray[1];
//
//        }// 当文件无后缀名时(如C盘下的hosts文件就没有后缀名)
//        if (fileName.indexOf(".") < 0) {
//            // 加上random戳,防止附件重名覆盖原文件
//            fileName = fileName + (int) (Math.random() * 100000);
//        }// 根据文件的全路径名字(含路径、后缀),new一个File对象destFile fileUpload = new File(deposeFilesDir + fileName);// 如果该文件的上级文件夹不存在,则创建该文件的上级文件夹及其祖辈级文件夹;if (!fileUpload.getParentFile().exists()) {fileUpload.getParentFile().mkdirs();}try {file.transferTo(fileUpload);  //将上传代码文件到上传到自己定义好的路径} catch (IOException e) {log.error("上传日志文件到服务器失败:" + e.toString());}return resultVo; 
}

参考文章: 1. https://blog.csdn.net/longyin0528/article/details/81567529?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

2. https://blog.csdn.net/jannie_kung/article/details/52057288

http://www.dtcms.com/a/490538.html

相关文章:

  • 如何弄死一个网站锡林郭勒盟建设工程造价管理网站
  • 【Node.js】为什么擅长处理 I/O 密集型应用?
  • 基于SpringBoot的无人机飞行管理系统
  • STM32的HardFault错误处理技巧
  • Tekever-固定翼无人机系统:模块化垂直起降、远程海上无人机、战术 ISR 无人机
  • Kafka Queue: 如何严格控制消息数量
  • 大兴建设网站wordpress 托管主机
  • 国外html响应式网站网站开发高级证
  • 苍穹外卖--04--Redis 缓存菜品信息、购物车
  • 大淘客网站如何做seowordpress o2o主题
  • 机器学习催化剂设计专题学习
  • (六)机器学习之图卷积网络
  • 告别刀耕火种:用 Makefile 自动化 C 语言项目编译
  • 【安卓开发】【Android】做一个简单的钢琴模拟器
  • C#控制反转
  • 【Java 开发日记】什么是线程池?它的工作原理?
  • 黄页网站数据来源wordpress 最新漏洞
  • 如何评价3D高斯泼溅(3DGS)技术为数字孪生与实时渲染带来的突破性进展?
  • 技术解析:如何将NX(UG)模型高效转换为3DXML格式
  • 阿里云智能建站网络类黄页
  • SAP MIR7 模拟过账没有这个按钮
  • Redis 分布式锁实战:解决马拉松报名并发冲突与 Lua 原子性优化
  • 光刻胶化学基础:聚合物分子量分布对分辨率的影响与控制,以及国内技术突破
  • Lua C API 中的注册表介绍
  • 广州做网站哪家公司最好wordpress html调用php
  • 神经网络之计算图
  • Hatch 故障排除指南
  • 神经网络之计算图分支节点
  • 【表格对比分析】Java集合体系、Java并发编程、JVM核心知识、Golang go-zero微服务框架
  • 【任务管理软件】实用工具之ToDoList 9.0.6 详细图文安装教程:高效任务管理的完美起点