如何上传文件到数据库?

如何上传文件到数据库?,第1张

文件上传到数据库请参考以下示例:

<%@ page contentType="text/htmlcharset=gb2312"%>

<%@ page language="java" import="java.sql.*" %>

<%/////连接数据库

java.sql.Connection conn

java.sql.Statement stmt

java.sql.ResultSet rs1

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

conn=DriverManager.getConnection("jdbc:odbc:dababasename")///数据源

stmt=conn.createStatement()

%>

<%

String sqlin="insert into drawing values

File file = new File("c:/z.jpg")

long l1=file.length()

int l2=(int)l1

FileInputStream is = new FileInputStream(file)

InputStream fis=(InputStream)is

PreparedStatement ps = conn.prepareStatement("insert into images values (?,?)")

ps.setString(1,file.getName())

ps.setBinaryStream(2,fis,file.length())

ps.executeUpdate()

ps.close()

fis.close()

//将图片从数据库中提取,进行显示

//drawing字段为IMAGE类型

stmt = conn.createStatement()

rs1 = stmt.executeQuery("SELECT * FROM drawing WHERE drawing_code ='0-515' and version=3")

if (rs1.next())

{

String dim_image = rs1.getString("file_name")

byte [] blocco = rs1.getBytes("drawing")

response.setContentType("image/jpeg")

ServletOutputStream op = response.getOutputStream()

for(int i=0i<blocco.lengthi++)

{

op.write(blocco[i])

}

}

rs1.close()

%>

就是2中方法:

1:上传图片的相对路径到数据库中相应字段里,读取显示时,将控件(假设用的是Image控件)的ImageUrl属性指向该相对路径即可。

2:将图片以二进制流的方式整体上传到数据库里,读取显示时,以二进制流的方式整体读出。这种方法稍微麻烦一点,但保存的是图片整体到数据库里。

首先设置Form的AllowDrop=true

public partial class Form1 : Form

{

    public Form1()

    {

        InitializeComponent()

    }

    private void btnStart_Click(object sender, EventArgs e)

    {

    }

    private void Form1_DragEnter(object sender, DragEventArgs e)

    {

        if (e.Data.GetDataPresent(DataFormats.FileDrop))

        {

            e.Effect = DragDropEffects.Link 

        }

        else

        {

            e.Effect = DragDropEffects.None

        }

    }

    private void Form1_DragDrop(object sender, DragEventArgs e)

    {

        string path = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString()

        // 接下来可以通过filestream来上传文件。

    }

}

在DragDrop事件中能够得到拖放到窗体上的文件路径,然后使用filestream就可以上传了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9902187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存