java 文件上传格式,javaweb中的文件上传(以2进制格式上传)
html:前台:简单的一个上传界面,可以浏览上传的文件,可以上传各种文件,前台没有验证,如过需要安全验证,可以在js中加验证
abc.jsp:
js:
function imp(){
var form = document.getElementById("form1");
form.setAttribute('method','post');
if(form.encoding){
form.setAttribute('encoding','multipart/form-data');
}else{
form.setAttribute('enctype','multipart/form-data');
}
form.setAttribute('action','abc2.jsp);
form.submit();
}
abc2.jsp的内容:是在页面写的处理
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 10);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(1024 * 1024 * 10);
try {
List items = upload.parseRequest(request); // 得到所有FileItem
// 上传文件的个数
// 上传文件的个数
Iterator iter = items.iterator();
// 循环处理所有文件
int i=0;
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// 判断是否是表单元素(单选,多选等)
if (!item.isFormField()) {
// 得到文件的名称
name = item.getName();
// 文件长度
long size = item.getSize();// 过滤大小
if (name == null || "".equals(name.trim())) {
// 未选择上传文件
continue;
}
int end = name.length();
// 返回在此字符串中最右边出现的指定子字符串的索引。
int begin = name.lastIndexOf("\\");
//int start = name.lastIndexOf(".");
// 输出上传文件类型,此处可以进行类型的过滤
name=name.substring(begin+1);
InputStream in=item.getInputStream();
UpLoadBean upLoadBean = new UpLoadBean();
upLoadBean.saveOriginalData(in,name,size,flag,sampleid);
}
}
}catch (FileUploadException e) {
// 处理文件尺寸过大异常
e.printStackTrace();
} catch (Exception e) {
// 处理文件写入时的异常
e.printStackTrace();
}
}
response.sendRedirect("abc.jsp);//返回abc.jsp页面
上传的javaBean:UpLoadBean:
public class UpLoadBean {
private static Logger log = Logger.getLogger(SampleBean.class);
private Connection conn=null;
private PreparedStatement pstmt=null;
private ResultSet rs=null;
public void close_all(){
if(pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void saveCurveUpload(InputStream blobfile,String filename,long size,Integer flag,Integer sampleid){//Integer flag,Integer sampleid是两个我自己项目中的参数不要
//的可以直接去掉
conn=DBUtil.getJNDIConnection();
String sql="insert into curveupLoad(blobfile,filename,flag,sampleid) " +
"values(?,?,?,?)";
log.info(sql);
try{
pstmt=conn.prepareStatement(sql);
pstmt.setBinaryStream(1, blobfile,(int)size);
pstmt.setString(2, filename);
pstmt.setInt(3, flag);
pstmt.setInt(4, sampleid);
pstmt.executeUpdate();
close_all();
}catch(SQLException e){
e.printStackTrace();
}
}
public void saveOriginalData(InputStream blobfile,String filename,long size,Integer flag,Integer sampleid){
conn=DBUtil.getJNDIConnection();
String sql="insert into Originaldata(blobfile,filename,flag,sampleid) " +
"values(?,?,?,?)";
log.info(sql);
try{
pstmt=conn.prepareStatement(sql);
pstmt.setBinaryStream(1, blobfile,(int)size);
pstmt.setString(2, filename);
pstmt.setInt(3, flag);
pstmt.setInt(4, sampleid);
pstmt.executeUpdate();
close_all();
}catch(SQLException e){
e.printStackTrace();
}
}
}
数据库:(是以2进制形式存储的,数据库用的是oracle)
字段
Id
主键
blobFILE
Blob文件
Flag
标志
Sampleid
外键
java 文件上传格式,javaweb中的文件上传(以2进制格式上传)相关推荐
- tomcat temp 大量 upload 文件_问题:JavaWeb中实现文件上传的方式有哪些?
问题:JavaWeb中实现文件上传的方式有哪些? 上回我们说了下文件下载的方式有哪些,这次我们从不同的环境下简单来说说文件上传的方式有哪些. 文件上传的方式 Servlet2.5 方式 Servlet ...
- java如何从https下载链接中下载文件
java如何从https下载链接中下载文件 文章目录 java如何从https下载链接中下载文件 从https 下载文件会存在什么用的问题? 导入安全证书到jdk 下载文件 URL 获取inputSt ...
- JAVA出现x可以在Point中访问private是什么意思 高手进
JAVA出现x可以在Point中访问private是什么意思 高手进 class Point{ private int x; private int y; public Point(int x,int ...
- 把9999的各个2进制位置上的1的 值打印出来? 如何实现? 1的数量 二机制位 x(x-1)
把9999的各个2进制位置上的1的 值打印出来? 如何实现? #include <iostream.h>int a = 9999; int main() {while(a){int ...
- 16进制格式的字符串怎样转换为整数
16进制格式的字符串怎样转换为整数 请教一个问题在使用一个第三方包的时候我在res/layout目录创建了一个跟该包下layout同名的布局文件结果显示的时候实现效果就被项目中新创建的布局样式所替代那 ...
- MFC中CString.Format的详细用法和进制转换
在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CString的Format方法给我们进行字符串的 ...
- [JS]ipv6地址16进制格式转换为二进制表示
描述:ipv6地址16进制格式转换为二进制表示 ipv6地址格式:3001:0000:0000:0000:0000:0000:1111:1111 方案1: //传入str_16_based:3001: ...
- java文件下载用什么技术_Java中实现文件上传下载的三种解决方案(推荐)
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 Save 改进后的代码不需要for ...
- java 打开jsp文件_jsp文件怎么打开(java-web中jsp的理解)
jsp文件怎么打开(java-web中jsp的理解)JSP:Java Server Pages.JSP是一种网页的编码格式,不同于HTML的是JSP中是由 HTML中的标签指令 和 Java逻辑代码 ...
最新文章
- 参观Speedy Cloud 有感
- 团队工具_「管理工具」部门有效管理的5个工具,打造高效团队
- H3C对IP存储有全面且独到认识
- mysql的结构,段页区,及客户端命令
- VMWare中CentOS系统不能上网的解决
- success for advertisement
- 分布式主流配置中心介绍:Apollo/Nacos/Spring Cloud Config/Disconf等
- HarmonyOS之AI能力·IM类意图识别
- mysql bytessent_如何对DSQLSERVER、MySQL、Orache语句性能分析
- [转]老生常谈session,cookie的区别,安全性
- Outlook中的Notes的链接打不开,提示错误信息“File does not exit”
- SQL 数据库 函数
- mongoDB mongochef-x64 搭建
- 用C#对Illustrator矢量图形软件进行编程
- axure中继器求和_Axure学习笔记:中继器之价格统计
- 【JavaWeb】在office word中使用merge field出现空行问题
- 使用win32API获取打印机是否处于脱机状态
- 微信小程序引入小图标
- 网络通信原理与IP地址的分配原理,网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
- C语言指针(函数指针数组,二级指针)
热门文章
- 利用朴素贝叶斯进行新闻文本分类
- 微信小程序中vant/weapp安装,初始化,及使用
- /*已知一个排好序的数组,按数组原排序方式插入一个数据*/
- android n 小米功能,小米的android N遇到google套件问题
- 东京大学工学系研究科数学套路总结系列之一【常微分方程式所有解法总结】
- 学习java的第12天
- Simditor的使用
- python图片转化字节流_python字节流怎么转化成图片
- 移动信号最好的服务器,2019信号排行榜发布:中国移动信号强度和稳定性最好……...
- 战略绩效管理工具:平衡计分卡简介