PHP网站制作之Oracle中图片的存贮与显示例程
在学习中,我也一直这样要求着自己。oracle|示例|显示 //store.php<HTML>
<HEAD><TITLE>Store binary data into Oracle Database</TITLE></HEAD>
<BODY>
<?php
// 假如提交了表单,代码将被履行:
dl("php_oci8.dll");
$conn = OCILogon("scott","tiger");
if ($submit) {
echo "File name: <b>$userfile_name</b><br>\n";
echo "File size: <b>$userfile_size</b><br>\n";
$hwsize = GetImageSize($userfile );
$w = $hwsize;
$h = $hwsize;
echo "Image width: <b>$w</b><br>\n";
echo "Image height: <b>$h</b><br>\n";
$ImgType = strtolower(substr( strrchr( $userfile_name, "." ), 1 ) );
if ($ImgType == "jpg")
$ImgType = "jpeg";
echo "Image type: <b>$ImgType</b><br>\n";
echo "Created date; <b>".date('Y-m-d')."</b><br>\n";
$sql = "insert into
Picture (PicId, UserName, Width, Height, ImgSize, ImgType, Created, Image, FileName, Description)
values(PicturePicId.nextval, '$username', $w, $h, '$userfile_size', '$ImgType', TO_DATE('".date('Y-m-d')."','YYYY-MM-DD'), EMPTY_BLOB(), '$userfile_name', '$description')
returning Image into :Image";
echo "<pre>$sql</pre>";
$stmt = OCIParse($conn, $sql );
$Image = OCINewDescriptor($conn );
OCIBindByName($stmt, ":Image", $Image, -1, SQLT_BLOB );
if (!OCIExecute($stmt, OCI_DEFAULT)) {
echo "Execution failed";
exit(1);
}
$fp = fopen($userfile, "r" );
$Image->save(fread($fp, filesize($userfile ) ) );
fclose($fp );
OCICommit($conn );
OCIFreeStatement($stmt );
} else {
?>
<form method="post" action=" <?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
File Description:<br>
<input type="text" name="description"size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<br>File to upload/store in database:<br>
<input type="file" name="userfile"size="40">
<p><input type="submit" name="submit" value="submit">
</form>
<?php
}
?>
</BODY>
</HTML>
//display.php
<?php
/*
Purpose:
Display an image from 'Picture' table
*/
dl("php_oci8.dll");
$conn = OCILogon("scott","tiger");
$stmt = OCIParse($conn, "select Image, ImgType from Picture where picid=23" );
OCIExecute($stmt);
@OCIFetchInto($stmt, &$result, OCI_ASSOC);
Header("Content-type: image/".$result['IMGTYPE']);
echo $result['IMAGE']->load();
OCILogoff($conn );
?>
理解动态语言的概念,运做机制,熟悉PHP语法 基础有没有对学习php没有太大区别,关键是兴趣。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 当然这种网站的会员费就几十块钱。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 本文当是我的笔记啦,遇到的问题随时填充 最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 兴趣是最好的老师,百度是最好的词典。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
页:
[1]