文件的上传

来源:互联网 发布:知豆电动汽车 电话 编辑:程序博客网 时间:2024/06/05 20:29

文件上传的最基本方法是使用html表单,在form表单中可以使用<input type="file">.但必须在form标

签中写enctype="multipart/form-data"用来指定表单编码数据方式,让服务器知道我们要传递一个文件

。method="post"用来指发送数据的方法
表单提交给服务器的数据,可以通过在php脚本中使用全局数组$_GET、$_POST或$_REQUEST接收,而同过

post方法上传的文件有关信息都存储在多维数组$_FILES中。
全局数组$_FILES中的元素说明:
$_FILES['userfile']['name']客户端机器文件的原名称
$_FILES['userfile']['tmp_name']文件被上传后在服务端储存的临时文件名
$_FILES['userfile']['error']文件上传相关的错误代码
$_FILES['userfile']['type']文件的 MIME 类型
$_FILES['userfile']['size']上传文件的大小,单位为字节
move_uploaded_file()文件上传后,首先会存储在服务器的临时目录中,可以通过该函数将上传的文件

移动到新位置
1、wenjian.html
点击浏览按钮添加要上传的文件(*请上传大小不能大于2M的jpg图片)<br>
<form enctype="multipart/form-data" action="wenjian3.2.php" method="post">

<input type="file" name="file"><br>
<input type="submit">

</form>
2、wenjian.php
if($_FILES["file"]["error"]>0){echo"文件上传失败";}
else{
 
   if($_FILES["file"]["type"]!="image/jpeg" && $_FILES["file"]["type"]!="image/pjpeg"){
   
//history.back()调用该方法的效果等价于点击后退按钮,返回上传页面   
    echo "<script> alert('图片格式不正确'); history.back();</script>";
    }
   
else {
     if($_FILES["file"]["size"]>2000000){
     echo "<script> alert('文件太大'); history.back(); </script>";
    
     }
 }

   if(move_uploaded_file($_FILES["file"]["tmp_name"],"d:/lamp/Apache2.2/htdocs/tmp".date

("d-m-y",time()).$_FILES["file"]["name"])){echo "上传成功";}//date("d-m-y",time()上传好的图

片扩展名前有时间显示
//move_uploaded_file将上传的文件移动到新位置,将上传的文件放在这里               

}

?>

复习文件的基本知识:
1、
//1文件的打开,利用fopen函数。返回值类型为rescource
$file=fopen("read.txt",'r');//r只读方式打开
//2读取文件的一行利用fgets()
fgets($file);
echo fgets($file);//这时读取到第二行,因为fgets($file);已经读取了,只是没有输出。
//文件的关闭
fclose($file);

//3利用循环和feof函数来实现整个文件的读取
while(!feof($file)){//feof判断一个文件指针是否位于文件的结尾处
 echo fgets($file);
}
2、
$file=fopen("read.txt",'a+');//a+写入方式打开文件,文件指针指向文件末尾
//4用fwrite或fput函数进行文件的写入
fwrite($file,"你好!\n");
fclose($file);//每一次都得关闭
$file=fopen("read.txt",'a+');
while(!feof($file)){
 echo fgets($file)."<br>";
}

//文件的关闭
fseek($file,0);//在文件指针中定位。利用fsek对文件指针进行归0.
fclose($file);
3、

//读取网页标题
$file = fopen("http://192.168.1.1/liuyanban/login.php",'r');//打开远程文件时,必须以只读的

形式打开
while(!feof($file))
{
 $row=fgets($file,1024);//将远程文件的每一行读取到$row变量中
 if(preg_match("/<h1>(.*)<\/h1>/",$row,$result))//preg_match

(pattern,subject,matches)在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。如

果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文

本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推


 {
  
  $h=$result[0];//$result[0] 将包含与整个模式匹配的文本
  break;
  
  }
 
 
 }
 
 echo $h;
 

原创粉丝点击