Struts提供我们方便地将客户端上传的文件处理
以下是本人的一些分享,我热爱编程,希望能多交编程的爱好者,如果你也是其中一名,那么请加好友,大家关注一下,下面的文章是自己觉得一些有用的东西,留下来给自己当笔记,当然也希望能帮助到你,首先感谢你的阅读~!
在Web程序中的上传文件的功能一般会使用<input type=file……/>标签在客户端显示输入要上传的文件名的用户接口。如果读者使用过JSP/Servlet来处理客户端上传的文件就会知道,实现这个功能并不是很容易。而在Struts中为我们提供了一种机制,可以非常方便地将客户端上传的文件保存在服务端。
在Struts Html标签库中提供了一个<html:file>标签,可以和FormFile类型的属性一起使用。通过这个属性返回的FormFile对象,就可以很方便地获得上传文件的InputStream对象,并做进一步地处理。
在Struts中,一个FormFile对象代表一个上传的文件。FormFile实际上是一个接口,我们可以在org.apache.struts.upload包中找到这个接口。FormFile接口有如下五个常用的方法:
1. getInputStream()方法
这个方法用于获得上传文件的java.io.InputStream对象,我们可以从这个InputStream对象中读取上传文件的数据,并将其写到服务端指定的路径下。
2. getFileData()方法
这个方法用于将上传文件的整个内容放到一个byte类型的数组中,如果上传文件的尺寸比较小的话,使用这个方法可以很方便地将上传文件保存到在服务端的指定路径中。
3. getFileName()方法
这个方法用于获得上传文件的文件名(不包括文件在客户机的路径部分)。
4. getFileSize()方法
这个方法用于获得上传文件的字节数。
5. destroy()方法
用于销毁所有和当前上传文件相关的资源。
下面的例子演示了如何使用<html:file>标签和FormFile对象来上传单个文件。实现这个例子需要如下六步:
第1步 建立上传文件的JSP页面
在<samples工程目录>目录中建立一个uploadFile.jsp文件,代码如下:
<%@ page pageEncoding="GBK"%>
<%@ taglib uri="" prefix="html"%>
<html>
<head>
<title>上传单个文件(文件大小不能超过2M) </title>
</head>
<body>
<%-- 在<html:form>标签中必须加enctype="multipart/form-data" --%>
<html:form enctype="multipart/form-data" action="uploadFile">
<html:file property="myFile"/><p> <%-- 使用<html:file>标签让用户输入上传文件名 --%>
<html:submit value="上传"/>
</html:form>
</body>
</html>
第2步 建立ActionForm的子类
在<samples工程目录>"src"actionform目录中建立一个UploadForm.java文件,代码如下:
package actionform;
import org.apache.struts.action.*;
import org.apache.struts.upload.FormFile;
public class UploadForm extends ActionForm
{
private FormFile myFile; // 这个myFile代表要上传的文件
public FormFile getMyFile()
{
return myFile;
}
public void setMyFile(FormFile myFile)
{
this.myFile = myFile;
}
}
在互联网时代,JAVA语言已经是使用最广泛的服务器端语言。随着3G、物联网时代的到来,JAVA语言并不会“过时”,相反,JAVA语言会在新的业务领域有着更辉煌的发展前景。
广州达内凭借不断创新的“达内教学系统(Tarena Teaching System - TTS)”,达内科技已在中国20多个主要城市建立了40多家培训中心,累计为IBM、微软、摩托罗拉、华为、中软、用友、Yahoo、阿里巴巴、 TOM、新浪、搜狐、百度、联想、亚信等知名企业培养输送了近9万名学员,迅速成长为中国高端IT培训领军品牌。
转载于:https://www.cnblogs.com/javaitpx/archive/2013/03/18/2965458.html
Struts提供我们方便地将客户端上传的文件处理相关推荐
- java文件客户端下载_使用Java写一个minio的客户端上传下载文件
标签:color ati tty java system wired format media param 前言: 确保已经安装了minio的服务端 代码: pom.x ...
- 怎样将文件压缩并传到服务器,客户端上传压缩文件(zip)的思路和实现
压缩文件上传的场景 前段时间,工作中有一个这样的需求,用户选择本机的多张图片要以压缩包(zip)格式的方式来进行上传服务器. 工作准备 本文提供的方法使用ZipArchive来实现 首先需要在本地创建 ...
- c#客户端上传文件到服务器
场景描述: 特别声明 以下代码也是我从网络上复制的别人的,但是一开始跑我这边有点报错就稍微调整了一下.同时也是记录一下 服务端接口接受一个客户端上传的文件流后进行后续的业务操作. 客户端: Modle ...
- netty冲突 play sbt_netty4 实现一个断点上传大文件功能
我本来以为文件断点续传功能很简单,不就是提供2个方法: 一个返回已经上传的文件的长度:另外一个负责上传文件呗(请求带上content-range 指明本次上传的内容在整个文件中的位置),然后根据请求提 ...
- linux禁止客户端上传文件_Linux 几种上传文件到linux服务的方法
Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...
- 将本地项目上传到Github的两种方式 1.在线上传 2.使用Git客户端上传
文章目录 注册GitHub账号并创建仓库 上传本地项目到Github的方式一:在线上传 上传本地项目到Github的方式二:使用Git客户端上传 Windows下安装Git客户端 Git配置本地用户名 ...
- 云存储Java客户端上传文件
什么是云存储 准确来说应该称为对象存储.云存储是比较流行的一种云服务,提供图片.视频等文件的存储服务.具有代表性的产品有:七牛云.阿里云对象存储OSS.又拍云.腾讯云对象存储服务COS. 云存储能做什 ...
- 联邦学习【分布式机器学习技术】【①各客户端从服务器下载全局模型;②各客户端训练本地数据得到本地模型;③各客户端上传本地模型到中心服务器;④中心服务器接收各方数据后进行加权聚合操作,得全局模型】
随着计算机算力的提升,机器学习作为海量数据的分析处理技术,已经广泛服务于人类社会. 然而,机器学习技术的发展过程中面临两大挑战: 一是数据安全难以得到保障,隐私数据泄露问题亟待解决: 二是网络安全隔离 ...
- linux禁止客户端上传文件_图片/文件上传如此简单|macOS 图床客户端 uPic
前言 相信很多人在写作(特别是需要多平台发布)的时候都会因为插图而增加工作量: 平台图片外链不允许在网站外部访问. 使用云图床服务上传流程复杂. 那么这些问题有没有办法解决呢,答案肯定是"有 ...
最新文章
- C++ 函数的模板的使用
- 最先进的目标检测器竟对大象“视而不见”
- Kubernetes是容器化微服务的圣杯么?
- oracle数据库 日志满了
- 乞力马扎罗山 海明威_我如何对海明威编辑器(一种流行的写作应用程序)进行反向工程,并从泰国的海滩上构建了自己的数据库
- 用CONVERT命令转换FAT到NTFS,合适吗?
- SQL Server - 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)
- 【边缘检测】基于matlab蚁群算法图像边缘检测【含Matlab源码 1189期】
- 有道云笔记数学公式大全
- 第五十一篇 仿真电路简单说明multisim12 电压表电流表
- golang json 转 map 切片 结构体
- 解决Mac系统读写NTFS格式移动硬盘
- 解决Flash弹窗广告
- win2012部署asp网站相关
- 【MYSQL】学习笔记
- 第七章集合与字典作业
- 自从用了这款黑科技工具,妈妈再也不用担心我的c盘文件爆满了
- 计算机学院迎新晚会主题八个字,大学迎新晚会主题
- 如果有人再问你 Java IO,把这篇文章砸他头上
- mysql命令行配置
热门文章
- 在odoo服务器文件夹,在windows10上安装odoo12开发环境的方法
- 武林c语言,c语言printf函数的使用
- vue使用slot分发内容与react使用prop分发内容
- grafana监控oracle11g,Grafana展示zabbix监控数据
- ubuntu 编译 hercules 主机安装 z/OS 教程
- 魔域java_java序列化
- centos改变文件拥有者_每天学点之CentOS软件二进制包安装
- php怎么创建两条折线图,excel折线图怎么做两条
- 阿里云rds mysql 并发_干货 | 浅析RDS MySQL 8.0语句级并发控制-阿里云开发者社区
- 服务器不支持mysql_服务器不支持 MySql 数据库的解决方法