`
ren2881971
  • 浏览: 108370 次
社区版块
存档分类
最新评论

上传图片和文件保存到数据库中(SmartUpload)

    博客分类:
  • j2ee
阅读更多
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>
分享到:
评论

相关推荐

    web中文件的上传和下载

    上传文件和参数获取: 1、上传图片的表单和普通参数的表单在表单编码方式上的区别 2、使用smartUpland 保存文件 1、文件保存在目录中: 2、文件保存在数据库中: 文件下载 1、从目录中下载: 2、从数据库字段下载:

    FormFile上传图片

    早前我做JSP项目的时候,用过jspSmartUpload这个组件来上传和下载图片,但是现在做的是SSH整合的项目,而struts又提供了一个FormFile类来做文件的上传和下载,如果还用jspSmartUpload来做的话,有点说不过去,于是试...

    jspsmartupload

    jspsmartupload 进行文件的批量上传和下载, 记录保存在数据库中 是一个项目,解压后直接运行

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 8.2.3、开发...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 8.2.3、开发...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 8.2.3、开发...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 8.2.3、开发...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 8.2.3、开发...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 8.2.3、开发...

    李兴华Java Web开发实战经典(高清版) Part2

    8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 8.2.3、开发...

    java web 视频、电子书、源码(李兴华老师出版)

    8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 8.2.3、开发...

Global site tag (gtag.js) - Google Analytics