700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > angularJS上传文件及表单

angularJS上传文件及表单

时间:2022-01-18 16:23:15

相关推荐

angularJS上传文件及表单

angularJS上传文件及表单

<form role="form"><div class="form-group"><label for="name">名称</label><input type="text" class="form-control" id="name"placeholder="请输入名称"></div><div class="form-group"><label for="file">文件输入</label><input type="file" id="file" class="file"></div><button type="submit" class="btn btn-default" ng-click="upload()">提交</button></form>

控制器部分获取文件和封装实体

var form = new FormData();var file = angular.element("#file")[0].files[0];//取文件。用angular.element("#file")一定要引入jQuery。form.append("fileName",file);form.append("user",angular.toJson(user));//toJson将json对象转成字符串,放入实体$http.post(url,form,{**transformRequest: angular.identity,headers:{'Content-Type': undefined}**}).success(function (data) {alert("true");});

后台控制层代码如下:

@RequestMapping(value = "/operatorAppList/save.do", method = RequestMethod.POST)public String saveUser(HttpServletRequest request,HttpServletResponse response) throws Exception {CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;//获取表单数据String userStr= multiRequest.getParameter("userInfo");User user = (User) JSON.parseObject(userStr, User.class);//获取文件String saveUrl = "";Iterator iter = multiRequest.getFileNames();while (iter.hasNext()) {String name = (String) iter.next();CommonsMultipartFile file = (CommonsMultipartFile) multiRequest.getFile(name);if (file != null) {saveUrl = FileUtil.uploadFileToTemp(request, file);//上传到临时目录String fileType = saveUrl.substring(saveUrl.lastIndexOf(".") + 1);String fileName = saveUrl.substring(saveUrl.lastIndexOf('\\') + 1);byte[] documentBytes = new byte[0];try {documentBytes = FileUtil.getBytes(saveUrl);} catch (IOException e) {e.printStackTrace();}//........保存数据库}}response.getWriter().print(res);return null;}

FileUtil 文件类

public class FileUtil {/*** 反斜杠.*/public static final String speratorAnti = "/";/*** 删除文件.*/public static void deleteFile(String strDir) {String targetPath = FileUtil.getWebContent() + strDir;File file = new File(strDir);if (file.exists()) file.delete();}/*** 保存文件到temp(临时上传).*/public static String uploadFileToTemp(HttpServletRequest request, CommonsMultipartFile upload) {if (!upload.isEmpty()) {try {// 保存的文件路径(如果用的是Tomcat服务器,文件会上传到/%TOMCAT_HOME%/webapps/YourWebProject/uploadTemp/文件夹中 )String filePath = request.getSession().getServletContext().getRealPath("/") + "uploadTemp/";String saveUrl = "uploadTemp/";FileItem item = upload.getFileItem();String fileName = item.getName();filePath += fileName;saveUrl += fileName;File saveDir = new File(filePath);if (!saveDir.getParentFile().exists())saveDir.getParentFile().mkdirs();// 转存文件upload.transferTo(saveDir);return request.getSession().getServletContext().getRealPath(saveUrl);} catch (Exception e) {e.printStackTrace();return null;}}return null;}/*** 读取磁盘上文件内容,二进制*/public static byte[] getBytes(String filename) throws IOException {File f = new File(filename);if (!f.exists()) {throw new FileNotFoundException(filename);}ByteArrayOutputStream bos = new ByteArrayOutputStream((int) f.length());BufferedInputStream in = null;try {in = new BufferedInputStream(new FileInputStream(f));int buf_size = 1024;byte[] buffer = new byte[buf_size];int len = 0;while (-1 != (len = in.read(buffer, 0, buf_size))) {bos.write(buffer, 0, len);}return bos.toByteArray();} catch (IOException e) {e.printStackTrace();throw e;} finally {try {in.close();} catch (IOException e) {e.printStackTrace();}bos.close();}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。