PHP图片上传代码 2

 更新时间:2016年11月25日 16:06  点击:1965


<?php 
 
Class upload 
 { 
  
var $upload_name
  
var $upload_tmp_address
  
var $upload_server_name
  
var $upload_filetype ; 
  
var $file_type
  
var $file_server_address
  
var $image_w=900;  //要显示图片的宽 
  var $image_h=350;  //要显示图片的高 
  var $upload_file_size
  
var $upload_must_size= 50000//允许上传文件的大小,自己设置 
  function upload_file() 
  { 
   
$this->upload_name = $_FILES["file"]["name"];    //取得上传文件名 
   $this->upload_filetype = $_FILES["file"]["type"]; 
   
$this->upload_server_name = date("Y_m_dH_i_s").$this->upload_name; 
   
$this->upload_tmp_address = $_FILES["file"]["tmp_name"];    //取得临时地址 
   $this->file_type = array("image/gif","image/pjpeg");  //允许上传文件的类型 
   $this->upload_file_size = $_FILES["file"]["size"];  //上传文件的大小 
   if(in_array($this->upload_filetype,$this->file_type)) 
   { 
   
   
   
if($this->upload_file_size < $this->upload_must_size) 
    { 
        
echo("上传成功,谢谢支持"); 
     
$this->file_server_address = "./upload/tx/".$this->upload_server_name; 
        
move_uploaded_file($this->upload_tmp_address,$this->file_server_address);//从TEMP目录移出 
        echo("<img src=$this->file_server_address width=$this->image_w height=$this->image_h/>");  //显示图片 
     
     } 
     
else 
     { 
      
echo("文件容量太大"); 
     } 
   } 
   
else 
   { 
    
echo("不支持此文件类型,请重新选择"); 
   } 
  }  
 } 

?>

 

 



<?php

include(''./lib/wodream/image/image_upload.php''); 
 
$dd = new upload; 
 
$dd->upload_file(); 

?>

 

 



<center><form  id="form1" name="upload" enctype="multipart/form-data" method="post"  action="index.php?controler=userinfo&action=image">
上传文件: 
<br><input type="hidden" name="MAX_FILE_SIZE " /> 
<input name="file" type="file"   style="width:200;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17">
<input type="submit" name="Submit"  value="上传" style="width:30;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17"><br><br><br>
允许上传的文件类型为:jpg|jpeg|png|pjpeg|gif|bmp|x-png|swf 
<br><br>
<href="index.php">返回</a>
</form>

例子:

1、这个是 conn.php的内容:

 



<?php
    
$conn =  mysql_connect(''localhost'','''',''''); 
    
mysql_select_db(''php''); 
?>

 

2、如果这样调用:

 



 function fun($a)
     {
         
include("conn.php");
          
.......//数据库处理语句

      }

.....

fun(
"aaa");//第一次调用

.....

fun(
"bbb");//第二次调用


在第二次调用的时候会出错,但是把 include 换成 require 就不会出问题。

因为 require 文件只在读到该页面的时候调用一次,而 include 在每次调用含有 fun 的地方都调用,所以就出现了数据库连接还没关闭就再次连接的错误。

因此在循环中只要调用一次的用 require ,其他地方这两个都可以用。

 



这是一篇介绍如何用php来实现MVC模式开发的文件。关于MVC模式的技术文章网上随处可以,所以这篇文件将不再讲述这种模式的优缺点(实际上是我说不清楚),子讲他的php技术实现。并且在以后的系列文章中也是以讲技术为主。

一、实现统一的网站入口(在MVC中调用Controler层的方法,也就是控制层)


大家也许经常在网上看到这样的路径(http://www.aaa.com/aaa/bbb/aaa?id=5),让人不解,这样的网站的实现方式有几种可能性:
    1、隐藏文件的扩展名,对这种做法的好处,众说纷纭,不过个人觉得没有必要;
    2、用了网站的重定向规则,实现虚拟路径;
    3、强制文件解析的方式,实现虚拟路径。
用第23种方法可以实现网站的统一接口,合理的整合网站,更好的体现网站的安全性和架构,用这两种方式的网站大多是使用“MVC”模式构

建和实现的。


下面是一个例子

访问路径如下:
      ....../test/*******/Bad
      ....../test/*******/Good
    (其中的"******"可以用任何字符串替换,"......."是你的web路径)

文件的目录结构如下
 |-- .htaccess
 |-- test
 |-- Application.php
 |-- Controler/GoodControler.php
 |-- Controler/BadControler.php

注意 文件".htaccess",在windows下不能直接建立的,可以在命令行模式下建立.


文件0:(.htaccess)(这个文件是更改apache的配置方式用的)
<files test>
forcetype application/x-httpd-php
</files>

文件1:(test.php)

<?php
/*-------------------------------------
 * test.php
 *
 * 作为你的网站的入口的文件
 * 用来初始化和入口
 * 调用执行Controler的调用
 *
 -------------------------------------*/
require "Application.php";
$aa = new Application();
$aa->parse();
$aa->go();

?>

文件2:(GoodControler.php)

二、抽象数据库接口(利用数据操作管理类)

在用mvc模式开发的时候,model层负责数据库的所有操作,为了对数据库的操作进行统一的管理,我们需要定义一个数据库操作管理类,由他来接替所有的数据库操作,也就是整个系统中只有这个数据库操作管理类,可以直接对数据库进行操作,如果其他的类需要对数据库进行操作,那它就必须调用和通过这个类来实现。

下面的Db类就是一个这样的类。

<?

Model层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的装封,进行他的设计的时候设计到三个个概念:
------Model类。是实体类。用来保存数据库表格的中一条记录的所有字段的数据。并且可以验证这条记录数据的完整性。
------ModelManager类。 是实体类的管理类。通常每一个实体类(Model)都要有一个对应的管理类(ModelManager)。管理类可以用来管理实体类里面的数据纪录(例如删除/添加/更改.....)。 但是ModelManager类不一定要有对应的Model类。
------db类。 用来管理对数据库的联接。 ModelManager类所有的对数据的操作。都是通过这个db类来实现的。 在整个MVC模式中。只有这个db类可以直接对数据库进行操作。同时也只有ModelManager类可以对db类进行调用。

看上去好象是比较麻烦。但是实际上并不复杂。这种Model层设计方式。和网上购物系统的购物车程序是极其相似的。Model可以看作是购物车里的单个商品的信息类。Manager可以看作是订单。 订单是用来管理采购的商品的。



下面是一个简单的例子。应该是比较典型的。着重看他的整个设计和流程的实现。仔细研究一下。其实不难。

注意:下面例子使用的所有的类和方法都是经过简化的。实际情况比这个要复杂的多。但是。作为一个实例已经是足够用了。


文件夹结构:

<?php
/**************************************************************
 *        descript : mysql数据库操作管理类
 *
 *          author : 大龄青年
 *           Email :wenadmin@sina.com
 *                 qq : 303015292
 *             msn : wenguangqing@hotmail.com
 *************************************************************/
/*
 * example 1:  获取序列
 *    <?
 *    $db = new Db();
 *    $result = $db->getSeq(''art_id'', 2, 1);
 *    ?>
 */
/*
 * example 2:  分页查询
 *    <?
 *    $db = new Db();
 *    $result = $db->&queryPage(''select id,name from table'', 2, 10, DB_FETCH_ASSOC);
 *    foreach($result as $row)
 *     echo $row[''id''],''------''.$row[''name''].''<br>'';
 *    ?>
 */
/*
 * example 3:  插入数据
 *    <?
 *    $db = new Db();
 *    $result = $db->execute("insert into table (id, name) values(1,''name'')");
 *    if($result>0)     echo ''插入数据成功'';
 *    else                   echo ''插入数据失败'';
 *    ?


|- Db.php
|- Model.php
|- Manager.php
|- ModelTest1.php
|- ModelTest2.php
|- ModelTest3.php
|- ModelTest4.php
|- Model /
|- Model / ClassModel.php
|- Model / StudentModel.php
|- Model / ClassManager.php
|- Model / StudentManager.php
注意文件夹和文件名的大小写


内容:假设有一个数据库,保存在两张表,一张是class(班级)表格,一张是student(学生)的表格,

class表格字段:  cls_id----------int--------not null
                    cls_name--------string-----not null
                    cls_address-----string-----null

student表格字段:stu_id----------int--------not null
     stu_clsid-------int--------not null
        stu_name--------string-----null


ClassModel.php 里面是class表的一个实体类ClassModel
ClassManager.php 里面是ClassModel的管理类ClassManager
StudentModel.php 里面是student表的一个实体类StudentModel
StudentManager.php&n
[!--infotagslink--]

相关文章

  • 使用PHP+JavaScript将HTML页面转换为图片的实例分享

    这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Photoshop古装美女图片转为工笔画效果制作教程

    今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮

    jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13
  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • Photoshop枪战电影海报图片制作教程

    Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08