Jsp文件上传
来源:互联网 发布:淘宝确认收货是什么 编辑:程序博客网 时间:2024/06/08 09:25
用户常常需要上传一些文件给系统,所以就涉及到了web的文件上传。首先要在from表单中 声明 method="post" enctype="multipart/form-data"两个属性,这是必不 可少的。
然后在服务器接收参数的时候就麻烦了,
// 接收用户上传的方法public String upload(HttpServletRequest request, HttpServletResponse response) {// 准备获取数据Map<String, String> parameter = new HashMap<String, String>();// 字段参数表,用于存储字段参数
String songUrl = "";String coverUrl = "";String lrcUrl = "";
String id = UUID.randomUUID().toString();// 准备文件上传String fileName = null;// 文件名InputStream in = null;// 文件输入流FileOutputStream out = null;// 文件输出流File filePath = null;// 文件存储路径// 创建磁盘工厂,调用第三方jar包commons-fileupload-1.3.3.jarDiskFileItemFactory factory = new DiskFileItemFactory();// 创建工厂核心对象ServletFileUpload sfu = new ServletFileUpload(factory);// 核心对象解析请求try {List<FileItem> parseRequest = sfu.parseRequest(request);// 遍历文件项:字段或文件for (FileItem fileItem : parseRequest) {if (fileItem.isFormField()) {// 拿到字段,封装内容到map集合parameter.put(fileItem.getFieldName(), fileItem.getString("utf-8"));} else {// 拿到文件fileName = fileItem.getName();in = fileItem.getInputStream();// 存储文件
//通过文件名采用不同的方法存到本地,单一文件上传可不要if-elseif (fileItem.getFieldName().equals("song")) {// 存储音频// 获取文件后缀名
//分割文件名String[] str = fileName.split("\\.");//注意“.”是要用转义字符的// 存入数据库的地址,每个人要存的地方不一样,一般来说存能访问的地址或本地存放地址,注意一下songUrl = SyayicParameter.song_path + id + "." + str[str.length - 1];//这里我调用的是一个静态属性filePath = new File(System.getProperty("catalina.home") + "\\webapps\\mixueFile\\song");// 文件存放路径//检查文件是否已经存在
if (!filePath.exists()) {filePath.mkdirs();}out = new FileOutputStream(filePath.getAbsolutePath() + "\\" + id + "." + str[str.length - 1]);
//调用第三jar包commons-io-2.5.jarIOUtils.copy(in, out);} else if (fileItem.getFieldName().equals("cover")) {// 存储封面String[] str = fileName.split("\\.");// 存入数据库的地址if (fileName.equals("")) {// 用户未上传封面coverUrl = StaticParameter.cover_path + "default.png";} else {coverUrl = StaticParameter.cover_path + id + "." + str[str.length - 1];// 存入本地的地址filePath = new File(System.getProperty("catalina.home") + "\\webapps\\mixueFile\\cover");if (!filePath.exists()) {filePath.mkdirs();}out = new FileOutputStream(filePath.getAbsolutePath() + "\\" + id + "." + str[str.length - 1]);IOUtils.copy(in, out);}} else if (fileItem.getFieldName().equals("lrc")) {// 储存歌词String[] str = fileName.split("\\.");// 存入数据库的地址if (fileName.equals("")) {// 用户未上传歌词lrcUrl = StaticParameter.lrc_path + "default.lrc";} else {lrcUrl = StaticParameter.lrc_path + id + "." + str[str.length - 1];// 存入本地的地址filePath = new File(System.getProperty("catalina.home") + "\\webapps\\mixueFile\\lrc");if (!filePath.exists()) {filePath.mkdirs();}out = new FileOutputStream(filePath.getAbsolutePath() + "\\" + id + "." + str[str.length - 1]);IOUtils.copy(in, out);}}}}
//其他参数存入数据库if (ss.addSong(id, parameter.get("name"), songUrl, coverUrl, lrcUrl, parameter.get("author"),new Timestamp(System.currentTimeMillis()), 0, parameter.get("upper"))) {return null;}} catch (Exception e) {e.printStackTrace();}return null;}
阅读全文
0 0
- JSP 进行文件上传。JSP文件上传
- jsp文件上传
- jsp文件上传
- jsp文件上传处理
- jsp实现文件上传
- jsp上传文件
- JSP mySmartUpload上传文件
- JSP Uploader上传文件
- jsp上传文件
- 文件上传(JSP)
- 使用jsp上传文件
- Jsp 上传文件
- 上传文件 JSP+java
- jsp上传文件
- jsp实现文件上传
- JSP smartupload 文件上传
- 使用jsp上传文件
- jsp单文件上传
- Maven的简介,Maven工程搭建POM,坐标
- Netty源码分析:accept
- Jupyter notebook 安装,初步使用
- NOIP 2017 赛前集训总结 C++版
- NOIP模拟 边的处理【分治+动态规划】
- Jsp文件上传
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student"
- 【UnityShader入门精要】Unityshader中的漫反射(逐像素漫反射diffuse)
- 芯片史上最大收购案!会发生吗?
- windows环境下python2.7、pycharm、numpy_mkl、scipy、sklearn、Matplotlib、jupyter完整安装教程
- JS中的Window对象、Parent对象、Frame对象、Document对象和Form对象
- python测试开发笔/面试题(含答案)
- Linux入门笔记2. 文件系统概览
- C和C++相互调用详解