IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Struts之文件上传 -> 正文阅读

[Java知识库]Struts之文件上传

一、文件上传的三种方式

1、上传到tomcat服务器 ;

①自己的电脑,项目在哪里,图片就在哪里;

②云服务器:是没有CDEF盘的,只有/根目录

?2.上传到指定文件目录(用的多)

添加服务器与真实目录的映射关系,从而解耦上传文件与tomcat的关系文件服务器和web服务器通常是一个,但是文件目录与Tomcat目录肯定不是同一个

3、在数据库表中建立二进制字段,将图片存储到数据库;
? ? ? 安全性比第二种高

注意事项:

1、上传文件界面:enctype="multipart/form-data" ? ?type="file"

2、struts必须按照指定的格式去接收参数变量

二、文件上传的代码(第二中)

ClzAction

package com.zking.web;
?
import java.io.File;
?
import org.apache.commons.io.FileUtils;
?
import com.zking.dao.ClzDao;
import com.zking.entity.Clz;
import com.zking.util.BaseAction;
import com.zking.util.PageBean;
?
public class ClzAction extends BaseAction<Clz> {
?? ?
?? ?/**
?? ? * 按照指定的格式曲接受参数变量
?? ? * 1.上传的文件
?? ? * 2.上传的文件名
?? ? * 3.上传的文件类型
?? ? */
?? ?private File img;
?? ?private String imgFileName;
?? ?private String imgContentType;
?
?? ?public File getImg() {
?? ??? ?return img;
?? ?}
?
?? ?public void setImg(File img) {
?? ??? ?this.img = img;
?? ?}
?
?? ?public String getImgFileName() {
?? ??? ?return imgFileName;
?? ?}
?
?? ?public void setImgFileName(String imgFileName) {
?? ??? ?this.imgFileName = imgFileName;
?? ?}
?
?? ?public String getImgContentType() {
?? ??? ?return imgContentType;
?? ?}
?
?? ?public void setImgContentType(String imgContentType) {
?? ??? ?this.imgContentType = imgContentType;
?? ?}
?? ?/**
?? ? * 跳转到文件上传界面
?? ? * @return
?? ? * @throws Exception
?? ? */
? ? public String preUpload() throws Exception {
?? ??? ?this.result=this.clzDao.list(clz, null).get(0);
?? ??? ?this.req.setAttribute("result", result);
?? ??? ?return "upload";
?? ?}
?? ? /**
?? ??? ? * 文件上传
?? ??? ? * @return
?? ??? ? * @throws Exception
?? ??? ? */
? ? public String upload() throws Exception {
? ? ?? ?//img代表客户选择的文件(图片),接下来要将图片上传到其他地方
? ? ?? ?//img代表了源头,要将其写入目的地target
? ? ?? ?String destDir="F:\temp\imgs
";
? ? ?? ?String serverDir="/uploadImages";
? ? ?? ?FileUtils.copyFile(img, new File(destDir+"/"+imgFileName));
? ? ?? ?//将图片加到数据库
? ? ?? ?//数据库保存的值是:/uploadImages/xx.png
? ? ?? ?//图片是在:E:/temp/2021/mvc/upload/1.png
? ? ?? ?//访问:http://localhost:8080/struts/uploadImages/xx.png
? ? ?? ?clz.setPic(serverDir+"/"+imgFileName);
? ? ?? ?this.clzDao.edit(clz);
?? ??? ?return TOLIST;
?? ?}
?
}

配置文件

<result name="upload">/upload.jsp</result>

clzList.jsp?

<%@ page language="java" contentType="text/html; charset=UTF-8"
?? ?pageEncoding="UTF-8"%>
<%@ taglib uri="http://jsp.veryedu.cn" prefix="z"%>?? ?
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>?? ?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link
?? ?href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.css"
?? ?rel="stylesheet">
<script
?? ?src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.js"></script>
<title>工作列表</title>
<style type="text/css">
.page-item input {
?? ?padding: 0;
?? ?width: 40px;
?? ?height: 100%;
?? ?text-align: center;
?? ?margin: 0 6px;
}
?
.page-item input, .page-item b {
?? ?line-height: 38px;
?? ?float: left;
?? ?font-weight: 400;
}
?
.page-item.go-input {
?? ?margin: 0 10px;
}
</style>
</head>
<body>
?? ?<form class="form-inline"
?? ??? ?action="${pageContext.request.contextPath }/sy/clz_list.action" method="post">
?? ??? ?<div class="form-group mb-2">
?? ??? ??? ?<input type="text" class="form-control-plaintext" name="job_title"
?? ??? ??? ??? ?placeholder="请输入标题名称">
<!-- ?? ??? ??? ?<input name="rows" value="20" type="hidden"> -->
<!-- 不想分页 -->
?? ??? ??? ??? ?<input name="pagination" value="false" type="hidden">
?? ??? ?</div>
?? ??? ?<button type="submit" class="btn btn-primary mb-2">查询</button>
?? ??? ?<a class="btn btn-primary mb-2" href="${pageContext.request.contextPath }/sy/clz_toEdit.action">新增</a>
?? ?</form>
?
?? ?<table class="table table-striped bg-success">
?? ??? ?<thead>
?? ??? ??? ?<tr>
?? ??? ??? ??? ?<th scope="col">ID</th>
?? ??? ??? ??? ?<th scope="col">班级名字</th>
?? ??? ??? ??? ?<th scope="col">教员</th>
?? ??? ??? ??? ?<th scope="col">图片</th>
?? ??? ??? ??? ?<th scope="col">操作</th>
?? ??? ??? ?</tr>
?? ??? ?</thead>
?? ??? ?<tbody>
?? ??? ??? ?<c:forEach ?var="b" items="${result}">
?? ??? ??? ?<tr>
?? ??? ??? ??? ?<td>${b.cid }</td>
?? ??? ??? ??? ?<td>${b.cname }</td>
?? ??? ??? ??? ?<td>${b.cteacher }</td>
?? ??? ??? ??? ?<td>
?? ??? ??? ??? ?<img alt="" src="${b.pic }" style="width:50px;height:70px;">
?? ??? ??? ??? ?</td>
?? ??? ??? ??? ?<td>
?? ??? ??? ??? ??? ?<a href="${pageContext.request.contextPath }/sy/clz_toEdit.action?cid=${b.cid}">修改</a>
?? ??? ??? ??? ??? ?<a href="${pageContext.request.contextPath }/sy/clz_del.action?cid=${b.cid}">删除</a>
?? ??? ??? ??? ??? ?<a href="${pageContext.request.contextPath }/sy/clz_preUpload.action?cid=${b.cid}">上传图片</a>
?? ??? ??? ??? ?</td>
?? ??? ??? ?</tr>
?? ??? ??? ?</c:forEach>
?? ??? ?</tbody>
?? ?</table>
?? ?<!-- 这一行代码就相当于前面分页需求前端的几十行了 -->
?? ?<z:page pageBean="${pageBean }"></z:page>
?
</body>
</html>

映射路径(server.xml)

<Context docBase="F:\temp\imgs" path="/uploadImages"/>

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-20 12:21:41  更:2021-10-20 12:23:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:44:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码