前端用了jquery.form.js插件异步提交表单

$("#imgForm").ajaxSubmit();//户主头像

/**
*
* @description 上传户主头像
* @author 邵海雄
* @date 2016年8月12日 上午9:39:26
*/
public void holdHead(){
//上传文件名(以当前系统时间为准)
String uploadfileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date(System.currentTimeMillis()));
UploadFile uploadFile = getFile("photoFilePic");//获得上传文件
File source = uploadFile.getFile(); //源文件
String fileName = uploadFile.getFileName(); //获得源文件文件名
String extension = fileName.substring(fileName.lastIndexOf(".")); //得到源文件的后缀
String uploadPath = PathKit.getWebRootPath()+"/upload/household"; //上传文件的路径
//服务器上的图片地址,添加到数据库的图片地址
String imgSrc="/upload/household/"+uploadfileName+extension;
ViewModel viewModel = AntipovertyCommonService.upload(uploadPath,source, uploadfileName+extension);
String householdId = getPara("householdId_img");
if (StrKit.notBlank(householdId)) {
//拿到户主ID更新图片地址
boolean flag= PovertyService.updateHouseholdHeadById(householdId,imgSrc);
}
renderJson();
}

/**
*
* @description 文件上传
* @author 邵海雄
* @return
* @date 2016年8月9日 下午 15:54:39
*/
public static ViewModel upload(String uploadPath,File source,String uploadFileName) {
ViewModel vm = new ViewModel();

try {
FileInputStream fis = new FileInputStream(source); //源文件输入

File targetDir = new File(uploadPath);//上传文件parent
if (!targetDir.exists()) {
targetDir.mkdirs(); //如果目标路径不存在新建一个
}

File target = new File(targetDir,uploadFileName);//上传文件
if(!target.exists())
{
target.createNewFile();
}

FileOutputStream fos = new FileOutputStream(target);//上传文件输出
byte[] bts = new byte[300];
while (fis.read(bts, 0, 300) != -1) { // 读取到数组
fos.write(bts, 0, 300); //写入
}
fis.close();
fos.close();
source.delete();
vm.setInfo(new Info("上传成功"));

} catch (FileNotFoundException e) {
vm.setErr(new Error("上传出现错误,请稍后再上传"));
} catch (IOException e) {
} vm.setErr(new Error("文件写入服务器出现错误,请稍后再上传"));

return vm;
}

jfinal 后台文件上传(结合上一篇(h5 图片回显))的更多相关文章

  1. 文件上传~Uploadify上传控件~续(多文件上传)

    对于Uploadify文件上传之前已经讲过一次(文件上传~Uploadify上传控件),只不过没有涉及到多文件的上传,这回主要说一下多个文件的上传,首先,我们要清楚一个概念,多文件上传前端Upload ...

  2. php实现大文件上传分片上传断点续传

    前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...

  3. 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件

    [源码下载] 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...

  4. input文件上传(上传单个文件/多选文件/文件夹、拖拽上传、分片上传)

    //上传单个/多个文件 <input title="点击选择文件" id="h5Input1" multiple="" accept= ...

  5. 使用webuploader实现大文件上传分片上传

    本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...

  6. FTP上传 -首先上传文件到的那台电脑得安装ftp

    /*↓↓↓↓ add upload ftp file 2014-03-16*/        /*↓↓↓↓ add 2014-03-16 ftp upload file*/    var $ftpse ...

  7. java图片上传及图片回显1

    目的:选择图片,进行图片回显之后将图片保存到服务器上(PS:没有使用任何插件,样式很丑) 实现方式: js+servlet+jsp的方式来实现 事先准备: 文件上传处理在浏览器中是以流的形式提交到服务 ...

  8. SpringBoot图片上传(五) 上一篇的新版本,样式修改后的

    简单描述:一次上传N张图片(N可自定义):上传完后图片回显,鼠标放到已经上传的图片上后,显示删除,点击后可以删除图片,鼠标离开后,图片恢复. 效果:一次上传多个图片后的效果 上传成功: 鼠标悬浮到图片 ...

  9. 项目总结21:项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库)

    项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库) 备注:本案例,作为Demo,包含少量的项目业务逻辑,input多图上传的逻辑是完整的: 不废话直接上代码 1-前端标 ...

随机推荐

  1. Django模版系统

    一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键 ...

  2. POJ 1198 / HDU 1401 Solitaire (记忆化搜索+meet in middle)

    题目大意:给你一个8*8的棋盘,上面有四个棋子,给你一个初始排布,一个目标排布,每次移动,可以把一个棋子移动到一个相邻的空位,或者跨过1个相邻的棋子,在保证棋子移动不超过8次的情况下,问能否把棋盘上的 ...

  3. ftp上传下载文件

    客户端client: import os import json import socket import struct sk = socket.socket() sk.connect(('127.0 ...

  4. Object-C,NSURL,统一资源定位器

    今天晚上最后一个例子,写完休息娱乐一会. URL,统一资源定位器,可以定位网络上的一个资源. 没啥难的,还是对象.方法.API.和Java等语言没有啥区别. 不亲自一点点写一遍,印象不深,今后进一步深 ...

  5. 题解 P3200 【[HNOI2009]有趣的数列】

    说起来这是今天第三道卡特兰数了... 楼上的几篇题解好像都是直接看出这是卡特兰数,所以我就写一下为什么这道题可以用卡特兰数吧. 考察这样相邻的两项:\(a_{2i-1}\)与\(a_{2i}\),根据 ...

  6. HTML5实战与剖析之媒体元素(3、媒体元素的事件及方法)

    HTML5中的媒体元素除了拥有非常多的属性之外,video标签和audio标签还能够出发非常多事件和方法. 这些方法监控着不同的属性的变化,这些变化有可能是媒体播放的结果,也可能是用户操作媒体的结果. ...

  7. 在AutoLyout中动态获得cell的高度 和 autoLyout中的小随笔

    autoLyout中动态获得cell的高度和autoLyout小总结 一.在autoLyout中通过动态的方式来获取cell 的方式呢? 1.       在布局时候要有对于cell中contentV ...

  8. CLion注冊码算法逆向分析实录(纯研究)

    声明 CLion程序版权为jetBrains全部.注冊码授权为jetBrains及其付费用户全部,本篇仅仅从兴趣出发,研究其注冊码生成算法. 不会释出不论什么完整的源码. 网上查了下.已有注冊机,所以 ...

  9. Android控件篇

    Android中提供了丰富的UI空间.为了最大限度地发挥平台的性能.每个开发人员必须熟练掌握UI控件尤其是经常使用的UI控件.并能依据须要呈现的内容选择最恰当的控件. Android提供了XML配置和 ...

  10. VS2008 集成Lua解释器

    1. 登陆官网下载源代码 -> www.lua.org -> get started ->  installing  选择系统类型(这里是Windows的,所下面载 luaDist) ...