php 文件上传简单实例应用

 更新时间:2016年11月25日 15:54  点击:1955
这是一款简单的php 文件上传简单实例应用哦,适合入门者学习与理解文件上传的原理。

<html>
<head><title>php 文件上传简单实例应用</title></head>
<body>

 代码如下 复制代码

<!-- 表单的enctype属性必须指定为multipart/form-data -->
<form enctype="multipart/form-data" action="3.php" method="post">
    上传此文件: <input name="myfile" type="file" />
    <input type="submit" value="提交上传" />
</form>

</body>
</html>

3.php文件

 代码如下 复制代码

<?php
//将文件移至服务器的根目录的upload目录下,upload事先得建立好
$upload_path = $_server['document_root']."/upload/";
$dest_file = $upload_path.basename($_files['myfile']['name']);

if(move_uploaded_file($_files['myfile']['tmp_name'],$dest_file))
{
 echo "文件已上传至服务器根目录的upload目录下";
}
else
{
 echo "文件上传时发生了一个错误".$_files['myfile']['error']; 
}
?>

 

这里讲的是列出目录下所有文件以及显示的排序方法,根据文件名来进行排序哦
 代码如下 复制代码

$dir = "d: iles";

$file_list1 = scandir($dir);
//向函数scandir传入第2个参数,如果第2个参数为1,表示按字母降序排列文件名
$file_list2 = scandir($dir,1);

echo "<pre>";
print_r($file_list1);
print_r($file_list2);

//改变目录

 代码如下 复制代码

echo "php当前的工作目录:";

echo "<br/>";
echo getcwd();
echo "<br/>";

chdir("dir_test");  //改变工作目录至当前目录的dir_test目录下

echo "<br/>";
echo "改变工作目录后,工作目录变为:";
echo "<br/>";

echo getcwd();

这是一款完整的php文件上传实例代码,支持上传的类型可以创建类时自定义,可支持的上传文件类型哦。
 代码如下 复制代码

<form name="form1" enctype="multipart/form-data" method="post" action="">
  <label for="filefield"></label>
  <input type="file" name="filefield" id="filefield">
  <input type="submit" name="button" id="button" value="上传文件">
</form>
<?php
/*
 * $name;     上传文件名
 * $size:    上传文件大小
 * $path;     文件原路径
 * $newpath:  设置新路径
 * $not:      禁止上传的文件类型数组
 * $notsize:  限制文件大小的值
 * $move:     上传文件源
 *
 */

class fileupload {
 public $name;
 public $size;
 public $path;
 public $newpath;
 public $not = array();
 public $notsize;
 public $move;
 public $allfile = array();
    function __construct($name,$size,$path,$newpath,$not,$notsize) {
     $this ->name = $name;
     $this ->size = $size/1048576;
     $this ->path = $path;
     $this ->newpath = $newpath;
     $this ->not = explode(',',$not);
     $this ->notsize = $notsize;
        $this ->upload();
    }
    /*
     * 上传程序
     * 首先判断目录是否存在
     * 判断文件类型及大小
     */
    function upload(){
     if(!file_exists($this->newpath)){
      echo "<script>alert('该目录不存在!')</script>";
      return;
     }else{
            $arr = explode('.',$this->name);
            if(in_array($arr[1],$this->not)){
             echo "<script>alert('该类型文件禁止上传!')</script>";
             return;
            }else if($this->name == ''){
             echo "<script>alert('请选择上传的文件!')</script>";
             return;
            }else if($this->size>$this->notsize){
             echo "<script>alert('上传文件超过规定大小!')</script>";
             return;
            }else if(file_exists("$this->newpath"."$this->name")){
                echo "<script>alert('该文件已经存在!')</script>";
                return;
            }
            else{
               $this->move = move_uploaded_file($this->path,$this->newpath.$this->name);
               $this->move();
             }
         }
    }
    /*
     * 判断文件上传是否成功
     */
    function move(){
     if($this->move){
      echo "<script>alert('文件上传成功!')</script>";
      return;
     }else{
      echo "<script>alert('上传失败!')</script>";
      return;
     }
    }
}


 $fu = new fileupload($array[name],$array[size],$array[tmp_name],'./www.111cn.net/','exe,rar',5);

我们经常会碰以要获取一个字符串指定部份的内容,下面我们用正则匹配来获取下一页的url怎么样。
 代码如下 复制代码
$str = 'ht
<td align=right>
<a href=http://www.111cn.net/>第一页</a>&nbsp;&nbsp;& nbsp;&nbsp;<a href=http://down.111cn.net/index_2.html>上一页</a>&nbsp;& nbsp;&nbsp;&nbsp;<a href=http://mb.111cn.net/index_4.html>下一页</a>
';
preg_match_all('/<a[^>]*href=([^>]*)>下一页</a>/is', $str, $matches);
print_r($matches[1]);

//方法二

 代码如下 复制代码
preg_match('/<a href=(.*)[/s]*>下一页</a>/u', $s, $arr);

/*
正则表达式到底是什么东西?

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

很可能你使用过windows/dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号"-",最后是7或8位数字的字符串(像010-12345678或0376-7654321)。

这是一款使用方便简单的php文件上传函数,只你要设置三个参数就可以方便的把你指定的文件类型上传批指定的目录了。
 代码如下 复制代码

function upfile($filename,$type,$path)
{

 $tempfile=$_files[$filename];//接收上传的临时文件

 //有没有上传成功
 if($error=$tempfile["error"])
 {
  switch($error){
   case 1:$errorstr="上传的文件超过了2m请返回检查。";break;
   case 2:$errorstr="上传文件的大小超过了 html 表单中限定值8m";break;
   case 3:$errorstr="文件只有部分被上传";break;
   case 4:$errorstr="没有文件被上传";break;
   case 6:$errorstr="找不到临时文件夹";break;
   case 7:$errorstr="文件写入失败";break;
  }
  showmsg($errorstr);
 }

 //文件类型是否在允许的范围内
 $filename=$tempfile["name"];//取上传原文件名
 $tmparr=explode(".",$filename);
 $extname=strtolower($tmparr[count($tmparr)-1]);//取出原扩展名并转为小写字母
 if(!in_array($extname,$type)) showmsg("上传的文件类型不允许,请返回检查.");

 //改文件名
 $newfile="zy".time().rand(100,1000).".".$extname;//构成新的文件名

 //路径
 $path.=$newfile;

 //重名判断
 if(file_exists($path)){
  $newfile="zy".time().rand(100,1000).".".$extname;//构成新的文件名
  $path.=$newfile;
 }

 if(!move_uploaded_file($tempfile['tmp_name'],$path))showmsg("文件移动失败。");

 return $newfile;
}

//些上传函数调用方法

 代码如下 复制代码
upfile($filename,$type,$path);
/*
参数:
$filename  为上传表单 type=file的名称
$type 允许上传的文件类型
$path 保存到文件路径


*/

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • jQuery实现简单的文件上传进度条效果

    本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
  • js实现上传图片及时预览

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