package demo;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.File;
import com.jspsmart.upload.Request;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
import demo.sql.DaoTest;
import demo.sql.SQlConnectionTest;
public class UploadFile extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
private PreparedStatement ps = null;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
DaoTest dt = new DaoTest();
SmartUpload su = new SmartUpload();
su.initialize(this.getServletConfig(), req, resp);
su.setMaxFileSize(500 * 1024 * 1024);
try {
su.upload("GBK");
} catch (SmartUploadException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Request smartRequest = su.getRequest();
String name = smartRequest.getParameter("name");
try {
int count = su.getFiles().getCount();
for (int i = 0; i < count; i++) {
File myFile = su.getFiles().getFile(i);
String fileName = myFile.getFieldName();
String path = this.getServletContext().getRealPath("/");
path = path + fileName;
int fileSize = myFile.getSize();
myFile.saveAs(path, su.SAVE_PHYSICAL);
java.io.File file = new java.io.File(path);
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(
new FileInputStream(file));
String sql = "insert into filetest (name,content) values(?,?)";
System.out.println(sql);
try {
PreparedStatement ps = dt.getConn().prepareStatement(sql);
ps.setString(1, name);
// ps.setBinaryStream(2, fis, (int) fileSize);
// ps.setBlob(2, fis,(long)fileSize);
// ps.setCharacterStream(2, isr, (int) fileSize);
ps.setBinaryStream(2, fis, (int) fileSize);
dt.getConn().setAutoCommit(true);
ps.executeUpdate();
dt.getConn().commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
fis.close();
isr.close();
file.delete();
try {
SQlConnectionTest.closeAll(dt.getConn(), ps, null);
ps = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!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=GBK">
<title>Insert title here</title>
</head>
<body>
<form id="myForm" method="post" action="UploadFile.action" enctype="multipart/form-data">
<table>
<tr>
<td>
用户名:<input type="text" id="name" name="name"/>
</td>
</tr>
<tr>
<td>
<input type="file" id="content" name="content"/>
</td>
</tr>
</table>
<input type="submit" id="commit" name="commit"/>
</form>
</body>
</html>
分享到:
相关推荐
在本文中,我们将深入探讨如何使用JSP与jspsmartupload控件将图片上传到数据库。jspsmartupload是一款强大的JSP文件上传组件,能够帮助开发者处理用户通过表单提交的多个文件。以下是对这个技术栈的详细解析: 1. *...
Java文件上传是Web开发中常见的功能之一,SmartUpload是一个强大的Java文件上传组件,它使得在Java应用程序中处理文件上传变得简单。在这个场景中,我们主要关注如何使用SmartUpload进行文件上传,并通过一个Demo来...
SmartUpload文件上传组件是Java Web开发中常用的一种工具,它为开发者提供了方便的文件上传功能。这个小例子展示了如何在JSP(Java Server Pages)环境中使用SmartUpload来处理用户上传的文件。SmartUpload通过简化...
4. **数据库存储**:如果上传的文件名需要存储在数据库中,同样需要确保数据库表字段的字符集是UTF-8,以便正确保存和检索中文文件名。 5. **前端处理**:在HTML表单中,`<form>`标签应包含`accept-charset="UTF-8...
5. **处理上传的文件**:在上传完成后,可以通过`smartUpload.getFiles()`获取到FileItem对象列表,然后对每个文件进行操作,如移动、重命名或保存到数据库。 6. **清理资源**:最后,别忘了调用`smartUpload.clean...
`SmartUpload` 是一个流行的Java上传组件,它简化了通过JSP(JavaServer Pages)页面实现文件上传到服务器的过程,并能将上传的图片信息保存到数据库中。下面我们将深入探讨`SmartUpload`的工作原理、其主要功能以及...
这个"SmartUpload上传文件和普通表单例子"将帮助你理解和实践这一过程,加深对Web应用中文件上传操作的理解。通过实际动手,你可以更好地掌握SmartUpload的使用技巧,从而在项目中更加灵活地处理文件上传需求。
5. **保存上传的文件**:使用`SmartUpload.save("destination")`方法,其中“destination”参数是指定文件保存的目录路径。 #### 四、代码示例 以下是一个简单的smartupload组件使用示例: 1. **upload.jsp**:...
- **保存文件**:使用save()方法将文件保存到服务器指定的位置。 3. **功能特性**: - **多文件上传**:SmartUpload支持同时上传多个文件,提高用户体验。 - **断点续传**:虽然SmartUpload本身不直接支持断点续...
服务器端接收到这些数据后,需要将文件保存到服务器的某个位置或者存储到数据库中。在本例中,选择了将文件存储到SQL Server 2000数据库。 文件上传的步骤如下: 1. 在JSP页面中创建一个表单,设置`enctype=...
这个工具能够处理单个或多个文件的上传,包括大小、类型等限制,并能方便地将上传的文件保存到服务器的指定位置。 2. **工作原理** SmartUpload通过解析HTTP请求中的multipart/form-data数据来获取上传文件。在...
【JSP实现将图片上传到数据库】的知识点涵盖了图片上传的基本原理、文件上传组件的使用、JSP中处理图片数据的流程以及服务器端文件的存储形式。以下是详细说明: 1. **图片上传原理**: 图片上传是客户端通过Web...
对于不支持的数据库,可能需要先将文件保存到服务器磁盘,然后存储文件路径到数据库。 此外,为了保证代码健壮性,应考虑以下几点: 1. 错误处理:捕获并处理可能出现的异常,如文件过大、文件类型不合法等。 2. ...
5. **数据库存储**:如果文件名需要存储到数据库中,确保数据库表字段的字符集也是UTF-8,以便正确存储和检索含有中文的文件名。 6. **浏览器兼容性**:部分老版本的浏览器可能不支持发送非ASCII字符的文件名,这时...
在"SmartUpload图片上传案例"这个压缩包中,可能包含了实现上述功能的示例代码,包括服务器端的Servlet代码、前端HTML和JavaScript代码。你可以通过研究这些代码来理解SmartUpload的使用方法,并根据自己的需求进行...
【标题】"上传文件图片,文件上传,jspSmartUpload组件源码" 描述了一种基于JSP技术的文件上传解决方案,特别提到了`jspSmartUpload`组件,它是一个用于Java Web应用的文件上传库,方便开发者处理用户通过表单提交的...
在这个Eclipse工程实例中,我们将探讨如何使用`jspsmartupload`来实现文件和图片的上传,同时确保文件保存路径中的中文字符不会出现乱码问题。 首先,`jspsmartupload`库解决了文件上传过程中的一些常见问题,如...
总结起来,基于jspSmartUpload的图片上传与更名涉及到前端表单设计、JavaScript验证、后端文件处理、文件更名策略以及图片的存储和显示。理解这些步骤可以帮助开发者构建一个安全、高效的图片上传系统。在实际应用中...
4. **服务器存储**:根据业务需求,将上传的文件保存到服务器的指定位置,或者存入数据库等。 5. **反馈结果**:服务器处理完成后,返回结果给前端,前端展示上传状态,如成功信息、错误提示等。 四、文件下载 ...
4. 遍历并处理文件:通过SmartUpload的getFiles方法获取UploadItem数组,遍历数组并处理每个文件,如保存到服务器、数据库操作等。 5. 错误处理:SmartUpload会自动处理文件上传过程中的错误,开发者可以通过...