### 图片上传原码(Java) #### 知识点概览 本文主要介绍了一种使用Java技术实现的图片上传功能,特别关注于如何将图片直接存储到SQL Server 2000数据库中,并且能够在前端展示这些图片。该示例包括了一个简单的HTML表单用于收集用户提交的数据以及一个JSP页面负责处理这些数据并将图片存储到数据库。 #### 知识点详解 ##### HTML 表单设计与功能 HTML表单设计用于收集用户输入的信息,包括用户的姓名、年龄、工作单位以及一张图片。具体代码如下: ```html <form METHOD="POST" ACTION="uploadFile2.jsp" NAME="PW" ENCTYPE="multipart/form-data"> <table CELLSPACING="0" CELLPADDING="3" BORDER="1" WIDTH="474"> <tr> <td width="150"><div align="left"><p><small><font face="Verdana">姓名: </font></small></td> <td width="324"><small><font face="Verdana"><input TYPE="TEXT" name="username" value=""><br></font></small></td> </tr> <tr> <td><small><font face="Verdana">照片: </font></small></td> <td><small><font face="Verdana"><input TYPE="file" name="FILE1"></font></small></td> </tr> <tr> <td><small><font face="Verdana">年龄:</font></small></td> <td><small><font face="Verdana"><input TYPE="TEXT" name="age" value=""></font></small></td> </tr> <tr> <td><small><font face="Verdana">工作单位:</font></small></td> <td><small><font face="Verdana"><input TYPE="TEXT" name="department" value=""></font></small></td> </tr> <tr> <td colspan="2" width="474"><div align="center"><center><p><small><font face="Verdana"> <input TYPE="Submit" value="提交"></font></small></td> </tr> </table> </form> ``` - **表单属性**:`ENCTYPE="multipart/form-data"` 是必须的,因为它允许表单数据包含二进制文件(如图片)。 - **表单元素**:使用了文本框 (`<input TYPE="TEXT">`) 和文件选择器 (`<input TYPE="file">`)。 ##### JSP 页面处理逻辑 JSP页面 (`uploadFile2.jsp`) 负责处理用户提交的数据,并将图片存储到数据库中。 ```jsp <%@ page contentType="text/html;charset=GB2312" %> <%@ page language="java" import="com.jspsmart.upload.*,java.io.*,java.util.*,java.sql.*" %> <%-----------------将上传的图片保存为一个文件--------------------- //新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); //上传初始化 su.initialize(pageContext); //设定允许上传的文件(通过扩展名限制),仅允许jpg,bmp,gif文件。 su.setAllowedFiles("*.jpg;*.bmp;*.gif"); //执行文件上传 su.upload(); //获取文件 SmartFile file = su.getFiles().getFile(0); //数据库连接 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); String connString = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=myDB"; Connection conn = DriverManager.getConnection(connString, "sa", "123"); //插入图片到数据库 PreparedStatement pstmt = conn.prepareStatement("INSERT INTO T_Pic (name, age, department, pic) VALUES (?, ?, ?, ?)"); pstmt.setString(1, request.getParameter("username")); pstmt.setString(2, request.getParameter("age")); pstmt.setString(3, request.getParameter("department")); pstmt.setBinaryStream(4, file.getStream(), (int) file.getFileSize()); pstmt.executeUpdate(); //关闭连接 pstmt.close(); conn.close(); %> ``` - **SmartUpload库**:用于简化文件上传的过程。 - **数据库连接**:使用的是SQL Server 2000的JDBC驱动来建立数据库连接。 - **插入图片**:通过`setBinaryStream`方法将图片流设置为SQL语句中的参数,并执行插入操作。 #### 总结 这个示例提供了一种简单有效的方法来处理用户上传的图片,并将其安全地存储到SQL Server 2000数据库中。这种方式不仅避免了文件系统的命名冲突问题,同时也便于对图片进行统一管理和检索。此外,还可以进一步增强安全性,例如通过增加文件大小限制、进行更严格的文件类型验证等手段。
- heshang84342012-11-28必须非常能用
- 粉丝: 48
- 资源: 49
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助