.net上传文件可以二进制方式上传,但是只能存在数据库中,这样的话,数据库的体积就会异常的大。
我想把上次的二进制文件直接写到硬盘上,数据库只记住路径就可以了。
不知哪位高手这样做过?

解决方案 »

  1.   

    string path = "...";
    file1.PostFile.SaveAs(path);
    sql = "insert into ......values(...'+path+')";
      

  2.   

     string connstr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
            SqlConnection conn = new SqlConnection(connstr);
            string sql = "select * from testimage";
            SqlCommand cmd = new SqlCommand(sql, conn);
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                byte[] bytes = (byte[])dr["Image"];
                FileStream fs = new FileStream(@"c:\" + dr["ID"] + ".jpg", FileMode.Create, FileAccess.Write);
                fs.Write(bytes, 0, bytes.Length);
                fs.Flush();
                fs.Close();
            }
            dr.Close();
            conn.Close();   int FileLen = FileUpload1.PostedFile.ContentLength;
        Byte[] FileData = new Byte[FileLen];
        HttpPostedFile hp = FileUpload1.PostedFile;
        Stream sr = hp.InputStream;
        sr.Read(FileData, 0, FileLen);
    参考