专栏首页阿Q说代码Jeesite4本地及服务器上传文件、图片详解

Jeesite4本地及服务器上传文件、图片详解

大家过年好,你们的老朋友小Q又回来了,最近一段时间忙于公司项目开发,又加上过年比较忙,所以没能留出时间更新内容,大家是不是有点着急了?公司最近在使用jeesite4开发项目,我呢,对这个框架一点也不熟悉,遇到问题都是现查现用。这不,在上传文件与上传图片这直接给卡死了。百度google了好久也没能找到解决办法,经过咨询开发者ThinkGem先生,总算找到了解决方案。所以呢,为了让以后使用jeesite4的同志们少走一点弯路,所以我就将自己的采坑之路给大家简单总结一下,希望对你们有所帮助。

首先呢,先给大家介绍一下jeesite4本地上传文件以及图片给大家提供的组件属性:

fileupload 文件上传:
1、文件上传:
<#form:fileupload id="upload1" bizKey="${user.id}" bizType="user_upload1"
    uploadType="all" class="required" readonly="false"/>
后台代码:FileUploadUtils.saveFileUpload(user.getId(), "user_upload1");

2、图片上传:
<#form:fileupload id="upload2" bizKey="${user.id}" bizType="user_upload2"
    uploadType="image" class="required" readonly="false"/>
后台代码:FileUploadUtils.saveFileUpload(user.getId(), "user_upload2");

3、返回路径:
<#form:fileupload id="upload3" returnPath="true"
    filePathInputId="upload3Path" fileNameInputId="upload3Name"
    uploadType="image" readonly="false" maxUploadNum="3" isMini="false"/>
<#form:input name="upload3Path" class="form-control"/>
<#form:input name="upload3Name" class="form-control"/>
组件属性:
var p = {
    // 标签参数
    id: id!,                    // 元素ID
    bizKey: bizKey!,            // 业务表的主键值(与附件关联的业务数据)
    bizType: bizType!,          // 业务表的上传类型(全网唯一,推荐格式:实体名_上传类型,例如,文章图片:article_photo)
    returnPath: @ObjectUtils.toBoolean(returnPath!false),   // 是否是返回文件路径到输入框(默认false),可将路径直接保存到某个字段里
    filePathInputId: filePathInputId!,  // 设置文件URL存放的输入框的ID,当returnPath为true的时候,返回文件URL到这个输入框
    fileNameInputId: fileNameInputId!,  // 设置文件名称存放的输入框的ID,当returnPath为true的时候,返回文件名称到这个输入框
    uploadType: uploadType!'',          // 上传文件类型:all、file、image、media,若不设置,则自动根据上传文件后缀获取
    class: class!'',                    // 标签框的CSS类名,设置 required 加入必填验证
    readonly: @ObjectUtils.toBoolean(readonly!false),       // 是否只读模式,只读模式下为查看模式,只允许下载
    
    allowSuffixes: allowSuffixes!'',    // 允许上传的后缀,前台的限制,不能超越file.*AllowSuffixes的设置,例如:.jpg,.png,
    maxUploadNum: @ObjectUtils.toInteger(maxUploadNum!300),    // 多文件下允许最多上传几个,默认300个,设置-1代表不限制
    
    imageMaxWidth: @ObjectUtils.toInteger(imageMaxWidth!1024),  // 图片压缩,最大宽度(uploadType为image生效),设置-1代表不做任何处理
    imageMaxHeight: @ObjectUtils.toInteger(imageMaxHeight!768),// 图片压缩,最大宽度(uploadType为image生效),设置-1代表不做任何处理
    
    isLazy: @ObjectUtils.toBoolean(isLazy!false),               // 设置为ture需要点击上传按钮才上传文件,否则选择后就直接上传
    
    isMini: @ObjectUtils.toBoolean(isMini!false),               // 是否是精简上传窗口,无边距,无边框
    
    preview: preview!'',                                        // 是否显示预览按钮,接受参数:weboffice
    
};

上边的属性呢,我先介绍一下我用到的几个比较特殊的,要想获取上传文件的路径的话得设置filePathInputId的值即文件URL存放的输入框的id为upload(自定义),然后将returnPath属性设置为true,这样的话文件URL就返回到id为upload的输入框里了。fileNameInputId同理。

然后给大家介绍一下jeesite4上传文件到服务器的步骤与方法:

1,要创建工具类继承FileUploadServiceExtendSupport类,添加@Service注解,并且重写里边的uploadFile(FileEntity fileEntity)和getFileUrl(FileUpload fileUpload)方法。

2,uploadFile(FileEntity fileEntity)方法中的FileEntity类是上传文件或图片的对照类,通过

String path = fileEntity.getFileRealPath();
File file=new File(path);

获取到上传文件的file对象,然后去完成自己的上传服务器的逻辑。

3,getFileUrl(FileUpload fileUpload)方法是获取到上传文件成功之后返回的服务器路径,在这个方法中去写你得到服务器路径的逻辑。

4,特别注意的是bizKey和bizType属性,这两个属性不去掉会读取file表的数据,去掉会读取你指定的隐藏域数据。我之前对这个没理解透彻,导致图片数据回显出现问题。

好了今天就先说到这了,想了解更多学习知识,请关注微信公众号“阿Q说”,获取更多学习资料吧!你也可以后台留言说出你的疑惑,阿Q将会在后期的文章中为你解答。每天学习一点点,每天进步一点点。

本文分享自微信公众号 - 阿Q说代码(AQ_Shuo),作者:阿Q

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 本地上传文件至服务器的技巧(linux文件压缩及解压文件)

    其他的详细请查看:http://note.youdao.com/noteshare?id=e1326ecee0cd291253a3a47de4984f18

    lin_zone
  • XShell上传、下载本地文件到linux服务器

    Xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz。 首先你的Linux上需要安装安装lrzs...

    Python之道
  • 本地文件上传Linux服务器快捷方式

    1, 在Linux服务器用root权限执行yum install -y lrzsz

    小筱
  • Mac本地文件上传到CentOS云服务器方法

    scp (你要上传的文件)root@(你的服务器域名或者IP):/(服务器存放路径)

    砸漏
  • Spring Boot 本地文件上传及提供HTTP访问服务

    服务端接收上传的目的是提供文件的访问服务,那么对于SpringBoot而言,可以提供文件访问的静态资源目录:

    HLee
  • Linux本机与服务器文件互传及Linux服务器文件上传下载命令写法

    注:如果端口号有更改,需在scp 后输入:-P 端口号 (注意是大写,ssh的命令中 -p是小写)

    砸漏
  • input file文件上传(multiple)及FileReader:读取本地图片文件并显示

    要想在页面上显示本地图片,以前我们通常的做法是将选择的图片文件上传至后端服务器,后端对其进行存储,再将图片的URL返回到前端,前端通过这个URL来显示图片。而H...

    山河木马
  • laravel excel 上传文件保存到本地服务器功能

    自定义一个数据模型, 可以使用ToModel , ToCollection等等, 详情请见官网

    砸漏
  • Android FTP服务器上传文件攻略(代码详解)

    在开发中,会遇到向FTP服务器上传文件的需求,首先要导入 commons-net-3.3.jar 然后利用api进行相关操作,具体功能如下:

    砸漏
  • PHP如何将图片文件上传到另外一台服务器上

      说,我有一个需求,就是一个临时功能。由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加商品内容,比如商品名字,商品描述,商品库存,商品...

    砸漏
  • SpringBoot实现本地存储文件上传及提供HTTP访问服务

    笔者计划为大家介绍分布式文件系统,用于存储应用的图片、word、excel、pdf等文件。在开始介绍分布式文件系统之前,为大家介绍一下使用本机存储来存放文件资源...

    字母哥博客
  • Android :okhttp+Springmvc文件解析器实现android向服务器上传照片

    B.Android添加一个按钮和一个ImageView,设置它的点击事件,打开相册选择照片,解析得到照片的本机url,并把照片显示到ImageView里

    砸漏
  • 【程序源代码】开源敏捷j2ee开发平台集成版

    基于java语言开发的。它是JeeSite4-JFlow 是 JeeSite 开发平台与 JFlow 流程开发平台集成的版本。可以使用 JeeSite 的敏捷性...

    程序源代码
  • 敏捷j2ee开发平台集成版

    基于java语言开发的。它是JeeSite4-JFlow 是 JeeSite 开发平台与 JFlow 流程开发平台集成的版本。可以使用 JeeSite 的敏捷性...

    程序源代码
  • 文件上传服务器-jupyter 中python解压及压缩方式

    直接用linux命令,在jupyter中只需要在命令前加一个!即可。学校服务器上没有装zip,但装了tar,可以在压缩的时候选择文件压缩为.tar.gz的文件格...

    砸漏
  • 如何高效的在服务器和本地进行上传和下载文件

    昨天, 师弟告诉我可以在xshell中使用sz进行下载, 想要上传的话用rz就行了. 然后我竟然没有听过. 学习最好的方法就是写一篇博客, 比如这篇.

    邓飞
  • 图片转二进制流并通过HTTP上传到静态文件服务器

    type设置为MediaType.parse("application/json; charset=utf-8")

    麦克劳林
  • 批量上传图片/文件时相应的服务器配置怎样修改

    WEB服务器对于客户端上传文件的大小和数量是有限制的(有默认的最大值),如果优订货业务系统有特殊需要,例如系统要支持批量上传操作有,就要修改服务器配置以适应业务...

    风柏杨4711
  • 如何在公司发的MAC电脑上实现本地上传下载文件到服务器?

    •下载lrzsz-0.12.20.tar.gz,下载地址,在公众号后台回复 MAC 获取下载压缩包

    乔戈里

扫码关注云+社区

领取腾讯云代金券