单文件上传 | 学习笔记

简介: 快速学习单文件上传,介绍了单文件上传系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web开发系列课程 - Struts2框架入门单文件上传】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/537/detail/7319


单文件上传

 

Intercept 本来是拦截器,在这里做文件上传功能,需要 httpservletrequest 来获取,判断一下是不是媒体提交。

if(LOG, isDebugEnabled ()){

ActionProxy  proxy= invocation ,getProxy(); LOG. debug( getTexthessage (”struts, messages. bypass. request", new Object[]{proxy. Ge

}

这是打印信息

contenttype 是获取文件类型

filename 是获取文件的名字

通过输的名字加上 contenttype,还有 filename 这个会用到,value 就是表达域的名称,下一个是 getfiles 进去看的话,主要看获取文件的状态。

acceptedFiles . add(files[index]);这个判断它为空

acceptedContentTypes . add( contentType [index]);这个是获取文件类型

acceptedFileNames . add(fileName[index]);这个是获取文件名称

}

文件上传的代码:

private List(FileItem) parseRequest ( HttpServletRequest  sequest, String savebri) throw.

DiskFileItemFactory  fac=" createDiskFileItemFactory (saveDir);

ServletFileUp {oad upload=new  ServletFileUpload (fac);

upload. setSizeMax (maxSize);

return upload, parseRequest ( createRequestContext ( servletRequest ));

}

和之前的是一模一样的,直接用就可以了

<form action=”upload.action”method=”post”encype></form>

文件:

<input type="file"name="file"/>

<input type="submit"value="上传"/>

</form>

File 的名称和上传的域的名称相同,有一个 filefilename 是文件名,filecontenttype是文件类型

image.png

//文件名

private String  fileFileName ;

//文件的类型

private String  fileContentType ;

//上传

public String upload() throws  FileNotFoundException {

HttpServletRequest  request= ServletActionContext . getRequest ();

String path=request. getRealPath ("/upload");

InputStream  is=new  FileInputStream (file);

OutputStream os=new  File (path, fileFileName );

}

不需要单独引用拦截器,首先再桌面新建一个文件,点击提交之后,出现临时目录,

image.png 

但是临时目录可以配置,就配置到C盘,设置临时目录就额可以从大的里面去找,或者直接删掉错误的,结果显示报错,因为这个最大默认值是2097152,要想要再大的就得去设置,就必须引用拦截器,单独引用不好跑,原码里有参数,但是这些参数都可以设置,设置好之后,它默认是2兆,我们设置10兆,直接去计算一下,2*1024,20971520就是20兆了,之前的文件是9兆,提交之后还是错的,还有一个配值。

设置上传文件的最大大小必须大于等于 maximumsize,提交后就可以了。

相关文章
|
NoSQL Linux 开发者
Linux下调试方法汇总 中
Linux下调试方法汇总 中
Linux下调试方法汇总 中
|
Java 持续交付 开发工具
|
关系型数据库 Unix PostgreSQL
|
C++ Python 存储
Bug现形记(一):一个多重继承程序的查错
  【课程支撑】我的 C++程序设计课程教学材料   要完成的任务详见第12周-任务2-双肩挑干部。题目要求   分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求:  (1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。  (2)在Teacher类中还包含数据成员title(职称),在Cadr
1609 0
|
3天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
4天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1089 152
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1752 9