首页 新闻 搜索 专区 学院

如何把文件存放到数据库中

0
悬赏园豆:60 [已关闭问题]

就是我想把一个文件放到数据库中

guoran的主页 guoran | 初学一级 | 园豆:0
提问于:2010-04-23 16:28
< >
分享
其他回答(4)
0

以二进制的方式进行存储就可以了。

姚箫 | 园豆:290 (菜鸟二级) | 2010-04-23 16:30
有没有代码?
支持(0) 反对(0) guoran | 园豆:0 (初学一级) | 2010-04-23 17:23
0

发给你一个上传图片并把它存入数据库的例子。

1.前台
<table cellpadding="0" cellspacing="0">
     <tr><td colspan="2"></td></tr>
     <tr>
         <td><asp:Label ID="Label1" runat="server" Font-Size="9pt" Text="选择文件"></asp:Label></td>
         <td align="left"><asp:FileUpload ID="FileUpload1" runat="server" Font-Size="9pt" /></td>
     </tr>
     <tr>
         <td></td>
         <td align="left">
             <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="保存"/></td>
     </tr>
     <tr>
         <td></td>
         <td align="left">
             <asp:Label ID="Label3" runat="server" Font-Size="9pt" Width="216px"></asp:Label></td>
     </tr>
</table>

2.后台

using System.IO;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            if (this.FileUpload1.PostedFile.FileName != "")
            {
                string ImgPath = FileUpload1.PostedFile.FileName;
                string ImgName = ImgPath.Substring(ImgPath.LastIndexOf("\\") + 1);
                string ImgExtend = ImgPath.Substring(ImgPath.LastIndexOf(".") + 1);
                int FileLen = this.FileUpload1.PostedFile.ContentLength;
                Byte[] FileData = new Byte[FileLen];
                HttpPostedFile hp = FileUpload1.PostedFile;
                Stream sr = hp.InputStream;
                sr.Read(FileData, 0, FileLen);
                SqlConnection con = new SqlConnection("server=(local);user id=sa;pwd=;database=db_07");
                con.Open();
                SqlCommand com = new SqlCommand("INSERT INTO tb_08 (name) VALUES (@imgdata)", con);
                com.Parameters.Add("@imgdata", SqlDbType.Image);
                com.Parameters["@imgdata"].Value = FileData;
                com.ExecuteNonQuery();
                Label3.Text = "保存成功!";
            }
            else
            {
                Label3.Text = "请选择文件!";
            }
        }
        catch (Exception error)
        {
            Label3.Text = "处理失败!原因为:" + error.ToString();
        }
    }
}

Astar | 园豆:40805 (高人七级) | 2010-04-23 16:37
0

性能 down  

WizardWu | 园豆:1402 (小虾三级) | 2010-04-24 06:22
0

以二进制的方式处理。

如果使用 SQLServer 数据库,创建 varbinary(max) 类型的字段。

如果使用 Oracle 数据库,创建 blog 类型的字段。

我估计你使用 SQLServer,关于 SQLServer 操作的方法,见微软网站上的详细说明

 

 

冠军 | 园豆:886 (小虾三级) | 2010-04-24 20:20
0

不建议这么干,太吃资源了,最好存路径完事。

地板上铅笔画 | 园豆:255 (菜鸟二级) | 2010-05-06 18:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册