时间: 2021-08-13 作者:daque
即使你想把二进制的数据,比方说图片文献和html文献,径直生存在你的mysql数据库,那么这篇作品即是为你而写的!我将报告你还好吗经过html表单来积聚那些文献,还好吗考察和运用那些文献。 正文概括: 在mysql中创造一个新的数据库 一个还好吗积聚文献的例子步调 一个还好吗考察文献的例子步调 在mysql中创造一个新的database 开始,你必需在你的mysql中创造一个新的数据库,咱们将会把那些二进制文献积聚在这个数据库里。在例子中我会运用下列构造,为了创造数据库,你必需做下列办法: 加入mysql遏制器 输出吩咐"create database binary_data;" 输出吩咐"use binary_data;" 输出吩咐"create table binary_data ( id int(4) not null auto_increment primary key, description char(50), bin_data longblob, filename char(50), filesize char(50), filetype char(50));" (不许断行) 即使没有不料,数据库 和 表 该当创造好了。 一个还好吗积聚文献的例子步调 用这个例子你不妨经过html表单将文献传输到数据库中。. store.php3 <?php // store.php3 - by florian dittmer <dittmer@gmx.net> ?> <html> <head><title>store binary data into sql database</title></head> <body> <?php // 即使提交了表单,代码将被实行: if ($submit) { // 贯穿到数据库 // (你大概须要安排长机名,用户名和暗号) mysql_connect( "localhost", "root", "password"); mysql_select_db( "binary_data"); $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data))); $result=mysql_query( "insert into binary_data (description,bin_data,filename,filesize,filetype) ". "values (’$form_description’,’$data’,’$form_data_name’,’$form_data_size’,’$form_data_type’)"); $id= mysql_insert_id(); print "<p>this file has the following database id: <b>$id</b>"; mysql_close(); } else { // 要不表露积聚新数据的表单 ?> <form method="post" action=" <?php echo $php_self; ?>" enctype="multipart/form-data"> file description:<br> <input type="text" name="form_description" size="40"> <input type="hidden" name="max_file_size" value="1000000"> <br>file to upload/store in database:<br> <input type="file" name="form_data" size="40"> <p><input type="submit" name="submit" value="submit"> </form> <?php } ?> </body> </html> 即使你实行了这个步调,你将会瞥见一个大略的html表单,单击“欣赏”采用一个文献,而后单击提交。 当文献上传至web效劳器之后,步调将会报告你方才上传的文献的id,记取这个id,待会要用的。 一个还好吗考察文献的例子步调 你不妨经过这个步调考察你方才积聚的文献 <?php // getdata.php3 - by florian dittmer <dittmer@gmx.net> // 挪用本领: getdata.php3?id=<id> if($id) { // 你大概须要安排长机名,用户名和暗号: @mysql_connect( "localhost", "root", "password"); @mysql_select_db( "binary_data"); $query = "select bin_data,filetype from binary_data where id=$id"; $result = @mysql_query($query); $data = @mysql_result($result,0, "bin_data"); $type = @mysql_result($result,0, "filetype"); header( "content-type: $type"); echo $data; }; ?> 步调必应知道要考察谁人文献, 你必需将id动作一个参数。 比方: 一个文献在数据库中的id为2. 你不妨如许挪用它: getdata.php3?id=2即使你将图片积聚在数据库里, 你不妨向挪用图片一律挪用它。 example: 一个图片文献在数据库中的id为3. 你不妨如许挪用它: <img src="getdata.php3?id=3"> 还好吗积聚大于1mb的文献: 即使你想积聚大于1mb的文献,你必需对你的步调、php树立、sql树立举行很多窜改,。 底下几条大概不妨扶助你积聚小于24mb的文献: 窜改 store.php3 ,将 max_file_size 的值改成 24000000。 窜改你的php树立,在普遍情景下,php只承诺小于2mb的文献,你必需将max_filesize(在php.ini中)的值改成24000000 去掉mysql的数据包巨细控制,在普遍情景下 mysql 小于1 mb的数据包. 你必需用以次参数重启你的mysql /usr/local/bin/safe_mysqld -o key_buffer=16m -o table_cache=128 -o sort_buffer=4m -o record_buffer=1m -o max_allowed_packet=24m