PHP文件的上传与转移文件路径

本文详细介绍了PHP中文件上传的过程,包括HTML表单设置、$_FILES数组的使用及文件移动。通过move_uploaded_file()函数将上传的文件从临时目录移动到指定位置,并展示了如何检查文件类型,限制上传文件格式。同时,提到了exif_imagetype()函数用于检测图像类型。
摘要由CSDN通过智能技术生成

PHP文件操作$_FILES提取与转移与FILES类型的解释

1.文件的提取与转移路径

HTML文件:

<form enctype="multipart/form-data" action="upload.php" method="post"> 
<input type="hidden" name="MAX_FILE_SIZE" value="1000"> 
<input name="userFile" type="file">          //上传(type)类型为文件  
<input type="submit" value="文件上传">    //type类型为submit代表提交内容
</form> 

注意!
1:得使用表单提交里面内容
2:中的enctype=”multipart/form-data”代表
3:action=”unload.php” //unload.php代表提交到的PHP文件以【文件名.php】写入
4:method用于提交的方式分为GET,. POST 这里用POST比GET更好

然后upload.php中可以直接用
$_FILES
$_POST
$_GET

等函数获取表单内容。

下面来讲解PHP文件方面的几种基本函数用法以及组合使用,首先先了解
$_FILES函数

$_FILES数组内容如下: 
$_FILES['userFile']['name'] 客户端文件的原名称。 
$_FILES['userFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"$_FILES['userFile']['size'] 已上传文件的大小,单位为字节。 
$_FILES['userFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。 
$_FILES['userFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量) 

UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。
值:5; 上传文件大小为0.
文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。所以在删除之前要用PHP的 copy() 函数将它复制到其它位置,此时,才算完成了上传文件过程。

下面请看范例:

<?php 
$uploaddir ="..\uploads\\";
$uploadfile=$uploaddir . $_FILES['userfile']['name'];
echo '<pre>';
if($_FILES['userfile']['error']==0){
  if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
    echo "文件有效,上传成功.\n";

    }
  else{
    echo "文件有效,但移动失败.\n";
  }
}
 else{
    echo "文件上传失败,原因". $_FILES['userfile']['error'] .".\n";
  }
echo "文件上传信息:\n";
print_r($_FILES);
echo "</pre>";
?>

图中第五行为设置文件上传路径为文件名其中的userfile为自己取的名字,提交HTML提交内容的名字(name=’userfile’)就用$_FILES来提取,后面的name为文件的名字。

图片整体解释如下:
最终目的为上传到上一级uploads目录,在“…\uploads\”中的…代表上一级目录
uploadfile代表设置上传后的文件名,用$uploadfile与文件名连接起来。

If($_FILES[‘userfile’][‘error’]==0){   //如果error为0那么文件没问题可以运行否则报错
函数move_uploaded_file($_FILE(“提交文件名”,”当前路径”),目标路径);用于将当前目录文件移动到指定目录move_uploaded_file($_FILES[‘userfile’][‘tmp_name’],$uploadfile) //代表将临时文件转移到$uploadfile路径下。
然后使用print_r($_FILES); 来查询提交文件的内容属性。

2.关于_FILES中的type解释:

$_FILES[‘userFile’][‘type’]:
type常用值:
jpg image/jpeg //图片
jpeg image/jpeg
zip application/zip //压缩包
css text/css //css文件
dhtml text/html
dll application/octet-stream
doc application/msword
exe application/octet-stream
html text/html
asp application/x-asap
bin application/octet-stream
mov video/quicktime
mp3 audio/x-mpeg //mp3格式
mp4 video/mp4 //mp4视频格式
gif image/gif //动图
pdf application/pdf //pdf格式
txt text/plain //text文本格式
xml text/xml //xml格式

知道了常用FILES文件格式后我们可以用它来限制上传的文件格式可以采用if来限定
如:

If($_FILES[‘提交的文件名’][‘type’]!=’text/plain’){
//如果不是text格式那么不输出
	echo “上传文件失败,仅允许文件类型为’text/plain’ . \n “;

}else{ 
//属于text格式,继续执行

}

拓展:exif_imagetype(filename)//filename被检测的文件名
判断一个图像的类型

图像类型常量链接: https://www.php.net/manual/zh/function.exif-imagetype.php#71058

参考:PHP中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值