前端用了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. 【Python常见问题总结】

    1. python2 中 end = '' 取消换行没有用 解决办法: 在程序开始加入 from __future__ import print_function 2. 如何在电脑上同时使用pytho ...

  2. UNIX系统高级编程——第五章-标准I/O库-总结

    基础: 标准I/O库在ANSI C中定义,可移植在不同的系统 文件指针(FILE):标准I/O库操作的不是文件描述符,而是流.FILE文件指针包含的是维护流所需的信息 通过函数fileno获取流的文件 ...

  3. Hololens官方教程精简版 - 08. Sharing holograms(共享全息影像)

    前言 注意:本文已更新到5.5.1f1版本号 本篇集中学习全息影像"共享"的功能,以实如今同一房间的人,看到"同一个物体".之所以打引號,是由于.每一个人看到的 ...

  4. mysql-汇总(聚集)函数

    我们需要汇总数据而不用把他们实际检索出来,他们主要用来进行分析和报表数据的生成. 1.AVG:通过对表中行数计数并计算特定列值之和,求得该列的平均值.可用来返回所有列的平均值,也可以用来返回特定列或行 ...

  5. Making User-Managed Backups-17.4、Making User-Managed Backups of Online Tablespaces and Datafiles

    17.4.Making User-Managed Backups of Online Tablespaces and Datafiles 当数据库打开时,能够备份一个在线表空间全部和一个指定的数据文件 ...

  6. jni传递对象中包含arraylist对象。

    相信在使用jni的过程中,总是要传递各种各样的类型,在这其中,我也碰到了一些问题. 简单的传一些内容,相信在网上一搜一大把. 所以我们就来说说.传递对象中包含arraylist吧. 在这里先给大家一个 ...

  7. POJ 3256 Cow Picnic

    Cow Picnic Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4928   Accepted: 2019 Descri ...

  8. 利用Matlab自带的深度学习工具进行车辆区域检测与车型识别【Github更新!!!】(三)

    前言 对前面的东西更新了一下.地方包括: 1.GUI的更新,更友好的用户界面 2.支持用手直接画车辆区域,并且识别出来 3.将proposal.detect.fine-grained classifi ...

  9. PostgreSQL Replication之第六章 监控您的设置(3)

    6.3 检查操作系统进程 一旦我们检查了归档以及我们的系统视图,我们就准备检查系统 进程.检查系统进程可能看起来有点粗糙,但它被证明非常有效. 在master上,我们可以简单地检查一个名为wal_se ...

  10. vue中使用滚动效果

    new Vue({ el: '#app', data: function data() { return { bottom: false, beers: [] }; }, watch: { botto ...