使用SmartUpload组件上传文件
刚刚上手的项目 被文件上传困扰了好久,之前用fileupload组件上传,代码参考孤傲苍狼博客,可是除了文件名,表单内的其他内容不知道该怎么读出来进行存储;所以此次采用smartupload组件进行上传
add.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'add.jsp' starting page</title></head><body><form action="backpages/memberIntroduce/addDo.jsp" method="post" enctype="multipart/form-data">姓名:<input type="text" name="name"><br>简介:<input type="text" name="content"><br>照片:<input type="file" name="photo"><br><input type="submit" value="提交"></form></body>
</html>
enctype必须是"multipart/form-data";
addDo.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.HQWeb.entity.*"%>
<%@ page import="com.HQWeb.dao.*"%>
<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@page import="com.jspsmart.upload.File"%>
<%request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//创建smartupload组件SmartUpload su = new SmartUpload();//初始化组件上下文su.initialize(pageContext);//上传文件su.upload();out.println("上传" + su.save("picture/memberPhoto") + "个文件成功!!!"+"<br>");//得到表单项//String name = su.getRequest().getParameter("name");//String content = su.getRequest().getParameter("content");String name = new String(su.getRequest().getParameter("name").trim().getBytes(), "utf-8");String content = new String(su.getRequest().getParameter("content").trim().getBytes(), "utf-8");//获取单个文件File file = su.getFiles().getFile(0);//可用一个for循环获取多个文件//判断当前file是否选择了文件;如果没有则继续if (file.isMissing())System.out.println("未选择文件");//如果用for循环 则continue//设置上传服务器的位置String path = "/picture/memberPhoto";//得到上传文件的名称String photo = file.getFileName();//上传文件的路径path = path + photo;//保存文件file.saveAs(path, SmartUpload.SAVE_VIRTUAL);System.out.println(photo);Member member = new Member();member.setName(name);member.setContent(content);member.setPhoto(photo);if (MemberDao.insert(member)) {out.println("操作成功,3秒后返回列表");response.setHeader("refresh", "3;list.jsp");} else {out.println("操作失败,3秒钟后返回列表");response.setHeader("refresh", "3;list.jsp");}
%>
在addDo.jsp页面里面,因为smartupload将全部内容封装,所以request.getParameter并不能获取到字段,需要使用封装好的su.getRequest().getParameter("name");
但又一个问题,上传中文表单时存储到数据库中会显示乱码,使用su.getRequest().getParameter("name").trim().getBytes(), "utf-8");能解决一部分,乱码问题尚待解决
重新自己总结上传文件流程:
1、实例化SmartUpload对象;
<!--[if !supportLists]-->2、 2、<!--[endif]-->初始化组建上下文(initialize(pageContext)方法);
<!--[if !supportLists]-->3、 3、<!--[endif]-->文件上传(upload()方法);
<!--[if !supportLists]-->4、 4、<!--[endif]-->获取表单项;
<!--[if !supportLists]-->5、 5、<!--[endif]-->获取文件(getFiles()返回Files类型,再使用其getFile(index)方法获取单个文件);
<!--[if !supportLists]-->6、 6、<!--[endif]-->设置服务器位置
<!--[if !supportLists]-->7、 7、<!--[endif]-->获取文件名
<!--[if !supportLists]-->8、 8、<!--[endif]-->设置路径;即path+filename path和文件名中间必须有"/"否则会将文件上传至pth路径下,并将文件名称改为该目录文件夹名+文件名
<!--[if !supportLists]-->9、 9、<!--[endif]-->使用file.saveAs(path, SmartUpload.SAVE_VIRTUAL);方法将文件保存至指定目录下
使用SmartUpload组件上传文件相关推荐
- 在jsp中使用smartupload组件上传文件- -
在jsp中使用smartupload组件上传文件- - jsp对上传文件的支持不象php中支持的那么好,直接做成了函数,也不象asp中要通过组件才能实现.jsp中可以通过javabean来实现.但是我 ...
- 使用SmartUpload组件上传文件,自己踩过的坑
昨天使用SmartUpload组件上传文件,代码很简单: smartupload_demo01.html <html> <head><title>smartuplo ...
- javaweb上传文件_javaWeb中,如何通过CommonsFileUpload组件上传文件
大家好,欢迎来到雄雄的小课堂,今天给大家分享的是<javaWeb中,如何通过Commons-FileUpload组件上传文件> 前言:文件上传大家都不陌生,在这个互联网飞速发展的时代,共享 ...
- element-ui upload组件 上传文件类型限制
element-ui upload组件 上传文件类型限制 <el-uploadclass="c-upload"ref="upload":action=&q ...
- ant design Upload组件上传文件类型
Upload组件上传文件类型设置 1.设置上传文件类型为excel <template><a-uploadname="file":multiple="t ...
- asp实现无组件上传文件原理
一.上传网页 上传页面代码: <form action="upload.asp" method="post" enctype=&quo ...
- 使用commons-fileupload组件上传文件(随笔)
1.第三方控件又被称为是第三方组件,使用第三方组件,可以避免大量编码,减少开发工作量及由于逻辑或算法造成的程序异常,从而降低开发成本,提高开发效率.由于第三方组件是第三方组织或者个人提供的,在开发时提 ...
- elementui 上传七牛_element ui使用上传组件上传文件到七牛(qiniu-js)
博主正在重构博客中,刚开始时静态资源都是上传到本地服务器的,但这个项目博主最后打算真正上线运营的.索性就改进了下,把静态资源尽量放到云存储中,方便后续开发.这里把方法和遇到坑给记录下. 1.使用前提注 ...
- smartupload工具上传文件
目录 1.将jar包添加到项目中 2.准备上传的页面 3.后台代码: Servlet中获取JSP页面中的内置对象PageContext smartupload常用方法 文件下载 1.将jar包添加到项 ...
最新文章
- 利用 Python 打造一个语音合成系统
- 线性模型和非线性模型的区别
- C++读写EXCEL文件方式比较 .
- boost::regex模块部分正则表达式相关的测试程序
- java关于包的叙述_Java中构造方法,包的引用,final,super等词的概括
- JAVA SE知识点总结
- restTemplate设置访问超时
- complete_code_Chapter1
- 使用Photoshop分解gif
- 常见移动机器人多角度对比分析
- postgres 退出_Postgresl选择正确的关闭模式
- 情感预测SHINE: Signed Heterogeneous Information Network Embedding for Sentiment Link Prediction引介
- 基于Python/Socket实现小型的远程木马(包含实验)
- SHOI 2008 仙人掌图 BZOJ 1023
- PPT学习整理(五)编辑顶点
- java中整数的整数次方_数值的整数次方
- JavaWeb - 小米商城:商品添加到购物车
- 知识图谱从入门到应用——知识图谱推理:基于表示学习的知识图谱推理-[嵌入学习]
- 四六级重要单词(二)
- win10 ren命令+excel 给多个文件重命名同样的数字/汉字
热门文章
- 用php写一个美食页面,以美食为主题的网页设计案例10个
- [ctf.show.reverse] 吃鸡杯 ezmore,有手就行,EzAutoRe
- c语言编译面板上总有个0,C语言编程中常见问题.doc
- 【面试实战】Java面试的时候,你能这么回答,就基本都可以过了!
- 系统数据占用太多怎么清理 ios iphone
- linux解压zip文件命令
- 如来佛祖和玉皇大帝谁大!!唐僧为什么要取经《西游记》中的政治路
- vscode 全局搜索时屏蔽node_modules和dist 目录
- citidirect什么意思_citidirect.com
- 百度惊雷算法3.0即将上线(终于开始整治SEO快排行业了)