燃尽图:

任务板:

会议图片:

今日任务:找一个合适的模板,并将代码功能嵌套进去,并且学习对于第一阶段未解决上传图片的问题。
明天计划:做之前做的发布寻物启示和失物招领的表单加上上传图片,并且对于信息的展示进行图片的描述显示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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">
<title>Insert title here</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/imgServlet" method="post" enctype="multipart/form-data" onsubmit="return check()">
ID:<p><input type="text" name="id" />
<p><input type="file" name="file" id="file" onchange="showPreview(this)" > <br />
<P><img id="portrait" src="" width="170" height="175">
<p><input type="submit" name="submit" value="提交上传" />
</form>
<script type="text/javascript">
function showPreview(source) {
var file = source.files[0];
if(window.FileReader) {
var fr = new FileReader();
fr.onloadend = function(e) {
document.getElementById("portrait").src = e.target.result;
};
fr.readAsDataURL(file); //也是利用将图片作为url读出
}
}
function check(){
var fileInput = document.getElementById("file");
var files = fileInput.files;
}
</script>
</body>
</html>
package Servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import Dao.Dao;
import Entity.FileUploadUtils;
/**文件上传servlet
* Servlet implementation class imgServlet
*/
@WebServlet("/imgServlet")
public class imgServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public imgServlet() {
super();
// TODO Auto-generated constructor stub
}
Dao dao = new Dao();
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//1乱码
// response.getWriter().append("Served at: ").append(request.getContextPath());
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String path = request.getServletContext().getRealPath("/upload");// /指的是项目路径
System.out.println(path);
File dir = new File(path);
if(!dir.exists()) {
dir.mkdirs();//创建
}
//2处理文件上传
//2.1创建磁盘文件工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// factory.setSizeThreshold(1024*100);//使用缓存,设置缓存大小100k 默认10k
//设置缓存位置
// factory.setRepository(new File("d:\..."));
//创建文件解析器
ServletFileUpload upload = new ServletFileUpload(factory);
//判断是否为多分布表单
if(!upload.isMultipartContent(request)) {
return;
}
//解析
upload.setHeaderEncoding("utf-8");//解决文件名中文乱码
//控制单独文件大小2M
// upload.setFileSizeMax(1024*1024*2);
// //控制总文件大小
// upload.setSizeMax(1024*1025*50);
String name = null;
String value = null;
String filenameNow = null;
String ext = null;
String newfilename = null;
try {
List<FileItem> fileItems = upload.parseRequest(request);//表单中数据
if(fileItems!=null) {
for(FileItem fileItem : fileItems) {
//处理表单中的普通数据数据
if(fileItem.isFormField()) {
name = fileItem.getFieldName();
if(!name.equals("submit")) {
value = fileItem.getString("utf-8");//注意乱码
}
System.out.println( name + "....." + value);
}else {//处理文件数据
//流处理
InputStream is = fileItem.getInputStream();
String filename = fileItem.getName();
String temp[]=filename.split("\\");
filenameNow = temp[temp.length-1];
//如果满zu上传文件
if(filenameNow==null||filenameNow.trim().equals("")) {
continue;
}
//控制上传文件的类型
ext = filenameNow.substring(filenameNow.lastIndexOf(".")+1);
List<String> acceptExts = new ArrayList<String>();
acceptExts.add("jpg");
acceptExts.add("png");
if(!acceptExts.contains(ext)) {
response.getWriter().write(filenameNow+"不支持此格式文件上传");
continue;
}
newfilename = FileUploadUtils.getNewFilename(filenameNow);
FileOutputStream fos = new FileOutputStream(dir+"\"+newfilename);
byte[] buf = new byte[1024*4];
int len = 0;
while((len=is.read(buf))!=-1) {
fos.write(buf,0,len);
}
fos.close();
is.close();
response.getWriter().write(filenameNow+"LOAD SUCCESS!");
}
}
FileUploadUtils utils = new FileUploadUtils(value,newfilename);
if(dao.add(utils)) {
request.setAttribute("message", "添加成功!");
request.getRequestDispatcher("addresult.jsp").forward(request, response);
}else {
request.setAttribute("message", "图书名称重复,请重新输入!");
request.getRequestDispatcher("add.jsp").forward(request, response);
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
package Dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import DBcon.db;
import Entity.FileUploadUtils;
public class Dao {
public boolean add(FileUploadUtils utils) {
String sql = "insert into photo1(id,name) values('" + utils.getId() + "','" + utils.getPhotoname() + "')";
//创建数据库链接
Connection conn = db.getConn();
Statement state = null;
boolean f = false;
int a = 0 ;
try {
state = conn.createStatement();
a = state.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭z 连接
db.close(state, conn);
}
if (a > 0) {
f = true;
}
return f;
}
public ResultSet getAllRs(){
String sql="SELECT * from photo1 ORDER BY xuhao desc";
Connection conn = db.getConn();
ResultSet rs = null;
try{
Statement state = conn.createStatement();
rs=state.executeQuery(sql);
}
catch(SQLException e){
e.printStackTrace();
}
return rs;
}
}
package DBcon;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class db {
public static String db_url = "jdbc:mysql://localhost:3306/info_s";
public static String db_user = "root";
public static String db_pass = "z376371066.";
public static Connection getConn () {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");//加载驱动
conn = DriverManager.getConnection(db_url, db_user, db_pass);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭连接
* @param state
* @param conn
*/
public static void close (Statement state, Connection conn) {
if (state != null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close (ResultSet rs, Statement state, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (state != null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws SQLException {
Connection conn = getConn();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql ="select * from book";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()){
System.out.println("空");
}else{
System.out.println("不空");
}
}
}
package Entity;
import java.util.UUID;
public class FileUploadUtils {
private String id;
private String photoname;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPhotoname() {
return photoname;
}
public void setPhotoname(String photoname) {
this.photoname = photoname;
}
public static String getNewFilename(String oldfilename) {
String uuid = UUID.randomUUID().toString();//全球通用唯一表示
System.out.println(uuid);
return uuid+"_"+oldfilename;
}
public FileUploadUtils(String id, String name) {
this.id = id;
this.photoname = name;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<jsp:useBean id="dao" class="Dao.Dao" scope="page"/>
<!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">
<title>Insert title here</title>
</head>
<body>
<table>
<tr align="center" valign="middle" bgcolor="#CCCCCC" height="22">
<td>照片名称</td>
<td>照片显示</td>
<%
ResultSet rs=dao.getAllRs();
if(rs==null){
%>
<tr align="center" valign="middle"><td colspan="4">没有记录显示!</td>
</tr>
<%
}
else{
if(rs.next()){
%>
<tr align="center" valign="middle" height="22">
<td>222222</td>
<td><%=rs.getString("id") %></td>
<td><img src="upload<%=rs.getString("name") %>" width="150px";height="100px"></td>
</tr>
<%
}
if(rs.next()){
%>
<tr align="center" valign="middle" height="22">
<td>4444</td>
<td><%=rs.getString("id") %></td>
<td><img src="upload<%=rs.getString("name") %>" width="150px";height="100px"></td>
</tr>
<%
}
if(rs.next()){
%>
<tr align="center" valign="middle" height="22">
<td>uuuuu</td>
<td><%=rs.getString("id") %></td>
<td><img src="upload<%=rs.getString("name") %>" width="150px";height="100px"></td>
</tr>
<%
}
}
%>
</table>
**********************<br>
<input type="button" value="返回功能界面" onclick="window.location.href='add.jsp';"/><br>
**********************<br>
</body>
</html>

