java muti实现图片上传_MutiFileUpload.java 多文件上传
package app.other.commons.file;
import java.io.UnsupportedEncodingException;
.....
/ ^v^ ** * @version 創建時間:Dec 16, 2008 3:26:41 PM
類說明:多文件上傳
*
*/
public class MutiFileUpload extends HttpServlet {
private static final long serialVersionUID =
670829239023754119L;
private long sizeMax = -1; //
上傳文件大小(單位:字節byte),為-1時,無限制
private String encoding = "utf-8";//
字元編碼,當讀取上傳表單的各部分時會用到該encoding
//緩沖值,
默認是1024*10,即10K
private int sizeThreshold =
DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD;
public Map parameters;// 保存表單參數
public Map files;// 保存上傳的檔
public boolean uploadError = false; //
上傳是否有錯,漠認是沒錯false
/^v^**
* 解析request
*
* @param request
*/
public void parse(HttpServletRequest request)
{
parameters = new
HashMap();
files = new HashMap();
// Create a factory for
disk-based file items
DiskFileItemFactory factory =
new DiskFileItemFactory();
// Set factory
constraints
factory.setSizeThreshold(sizeThreshold);
//
factory.setRepository(repository);
// Create a new file upload
handler
ServletFileUpload upload = new
ServletFileUpload(factory);
// Set overall request size
constraint
upload.setSizeMax(sizeMax);
upload.setHeaderEncoding(encoding);
try {
List items =
upload.parseRequest(request);
Iterator
iterator = items.iterator();
while
(iterator.hasNext()) {
FileItem
item = (FileItem) iterator.next();
if
(item.isFormField()) {
String
fieldName = item.getFieldName();
String
value = item.getString();
parameters.put(fieldName,
value);
}
else {
String
fieldName = item.getFieldName();
files.put(fieldName,
item);
}
}
} catch (FileUploadException e)
{
e.printStackTrace();
this.setUploadError(true);//
設為出錯
}
}
/ ^v^**
* 取得非文件表單的值
* @param key
* @return
*/
public String getParameter(String key) {
return (parameters == null) ?
null : (String) parameters.get(key);
}
public String getParameter(String key, String
encoding) {
if (parameters == null)
return
null;
String value = (String)
parameters.get(key);
try {
if (value !=
null) {
value
= new String(value.getBytes("ISO-8859-1"), encoding);
}
} catch
(UnsupportedEncodingException e) {
e.printStackTrace();
}
return value;
}
/^v^**
* 得到上傳檔的檔案名
*
* @param item
*
* @return
*
*/
public String getFileName(FileItem item) {
String fileName =
item.getName();
fileName =
this.replace(fileName, "\", "/");
fileName =
fileName.substring(fileName.lastIndexOf("/") + 1);
return fileName;
}
/^v^**
* 獲得檔擴展
*
* @param item
* @return
*/
public String getFileExtension(FileItem item)
{
String fileName =
getFileName(item);
fileName =
fileName.substring(fileName.lastIndexOf("."));
return fileName;
}
/^v^**
* 驗證單個的文件是否超過最大值
* @param item
* @param defalutMaxSize
* @return true-正常, false-超過最大值
*/
public boolean checkMaxSize(FileItem item, long
defalutMaxSize){
if(defalutMaxSize == -1){
return
true;
}
return (item.getSize()
<= defalutMaxSize);
}
/^v^**
* 字串替
*
* @param source
*
* @param oldString
*
* @param newString
*
* @return
*
*/
public static String replace(String source,
String oldString, String newString) {
StringBuffer output = new
StringBuffer();
int lengthOfSource =
source.length();
int lengthOfOld =
oldString.length();
int posStart = 0;
int pos;
while ((pos =
source.indexOf(oldString, posStart)) >= 0) {
output.append(source.substring(posStart,
pos));
output.append(newString);
posStart =
pos + lengthOfOld;
}
if (posStart <
lengthOfSource) {
output.append(source.substring(posStart));
}
return output.toString();
}
//getter and setter
}
java muti实现图片上传_MutiFileUpload.java 多文件上传相关推荐
- java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...
1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...
- java 瑞吉外卖day4及补全功能 文件上传下载 菜品分页查询 Dto类 菜品状态修改 菜品停售以及菜品删除
文件上传下载 文件下载介绍 文件上传代码实现 服务端上传: @RestController @RequestMapping("/common") @Slf4j public cla ...
- java怎么把system.out的东西输出到文件上
java怎么把system.out的东西输出到文件上 浏览(1836)|评论(0) 交流分类:Java|笔记分类: 未分类 RT,我们在程序里system.out的东西都是从控制台刷过. 如果你想 ...
- 文件上传linux服务器,Linux 文件上传Linux服务器
进入命令行 在图形化桌面出现之前,与Unix系统进行交互的唯一方式就是借助由shell所提供的文本命令行界面(command line interface,CLI).CLI只能接受文本输入,也只能显示 ...
- SSM框架使用Layui文件上传插件实现多文件上传(多文件列表)
SSM框架使用Layui文件上传插件实现多文件上传(多文件列表) pom.xml文件的配置 想要实现SSM框架实现多文件上传,必要的jar包必须要在pom.xml文件中引入.如下: <!--co ...
- php 文件上传mime 类型,php文件上传类型(MIME)对照表
网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特色),学php的人都知道文件上传怎么做,但很多人在编程中却 ...
- 00截断上传绕过_【文件上传与解析】文件上传与解析漏洞总结v1.0
点击上方"公众号" 可以订阅哦! Hello,各位小伙伴晚上好~ 这里是依旧勤劳写公众号的小编~ 今天本公众号将推出一个新的模块,那就是漏洞知识点总结模块!!!(此处应有掌声~) ...
- php怎么上传函数,PHP单文件上传原理及上传函数的封装操作示例
搜索热词 @H_404_0@本文实例讲述了PHP单文件上传原理及上传函数的封装操作.分享给大家供大家参考,具体如下: @H_404_0@表单: @H_404_0@0.PHP: 无标题文档 请选择您要上 ...
- web文件上传(一)--文件上传与json上传区别及方法
Web文件上传方法总结大全 上传文件与与上传数据区别 上传数据主要指json等简单字符串,上传文件指的是上传word.excel图片等.在上传数据的时候enctype默认为第一个application ...
- 使用Apache文件上传控件实现文件上传
本文使用Apache提供的第三方文件上传控件进行文件上传 1.导入第三方commons-fileupload-1.3.2.jar和commons-io-2.5.jar包 2.页面form标签需添加en ...
最新文章
- 从RNN一步步通俗易懂T理解LSTM
- py文件打包或apk_Python文件打包成exe很简单,如果安卓手机也能运行的软件你会吗...
- Core Data 迁移与版本管理
- 【译】使用这些 CSS 属性选择器来提高前端开发效率!
- BNU OJ 第26303 题 Touchscreen Keyboard
- 调python返回图片_三个好习惯,帮你写好Python里的异常处理
- Origin绘制散点图个性化设置散点颜色
- 多核对mysql好处_多核和MySQL性能
- 李清照 —— 别是一家
- 16 数值的整数次方 (第3章 高质量的代码-代码的完整性)
- 追溯计算机的本源,读电路与系统简史
- 李开复:未曾公布的乔布斯故事
- BZOJ2794 [Poi2012]Cloakroom [离线][DP]
- 在服务器上安装tensorflow-gpu版本及其使用
- 6、Hello World官网教程(TX2)第一部分
- Matplotlib——饼图pie()函数
- 阿尔伯塔大学计算机科学专业课程,[阿尔伯塔大学]计算机/计算机工程专业
- 四步完成离线部署wvs
- 报错 - 使用marked报错 marked__WEBPACK_IMPORTED_MODULE_4___default(...) is not a function
- mysql的存储模型_一种BIM模型数据的数据库存储格式的制作方法
热门文章
- MySQL复制 slave_exec_mode 参数IDEMPOTENT 说明
- 计算机组装实训写总结,计算机组装维护实训总结.doc
- [c语言]malloc动态开辟内存空间
- PS 羽化工具使用
- UESTC 1607 大学生足球联赛 构造、蛇形安排赛程表
- WinForm实现倒计时锁定程序完整源码附注释
- Java实现简单日期计算功能
- 塞规公差带图_塞规和卡规公差表
- Win10 使用双宽带和双网卡进行网络叠加、提高网速的设置
- skewx 字体模糊_Pixelmator:从此修图不再叫做 “PS”