逍遥一派 发表于 2015-2-16 00:29:17

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语法

第二个灵魂 发表于 2015-2-16 04:55:03

基础有没有对学习php没有太大区别,关键是兴趣。

愤怒的大鸟 发表于 2015-2-16 04:55:03

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

飘灵儿 发表于 2015-2-28 03:17:42

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

活着的死人 发表于 2015-3-8 00:22:19

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

兰色精灵 发表于 2015-3-15 17:45:30

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

山那边是海 发表于 2015-3-16 02:52:11

当然这种网站的会员费就几十块钱。

莫相离 发表于 2015-3-17 20:09:16

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

深爱那片海 发表于 2015-3-20 20:12:23

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

冷月葬花魂 发表于 2015-3-24 04:11:26

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

简单生活 发表于 2015-3-28 03:25:57

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。

变相怪杰 发表于 2015-4-1 07:09:41

本文当是我的笔记啦,遇到的问题随时填充

金色的骷髅 发表于 2015-4-18 05:51:16

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

再现理想 发表于 2015-5-12 07:24:14

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

再见西城 发表于 2015-6-13 00:21:57

兴趣是最好的老师,百度是最好的词典。

小女巫 发表于 2015-6-18 08:28:28

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

飘飘悠悠 发表于 2015-6-24 18:56:20

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

小魔女 发表于 2015-6-29 10:50:18

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

老尸 发表于 2015-7-2 14:43:27

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

不帅 发表于 2015-7-28 13:09:12

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
页: [1]
查看完整版本: PHP网站制作之Oracle中图片的存贮与显示例程