发布网友 发布时间:2022-04-29 08:20
共2个回答
懂视网 时间:2022-04-29 12:41
通过<form>表单实现,将文件上传到一个临时目录,上传的过程不需要我们管,只需将文件移动到我们期望的目录即可。
具体方法如下:
1、修改PHP配置文件
file_uploads//服务器上的PHP脚本是否可以接受HTTP文件上传 memory_limit//设置脚本可以分配的最大内存量,防止失控脚本独占服务器内存 upload_max_filesize//限制PHP处理上传文件的最大值,此值必须小于post_max_size值 post_max_size//限制通过POST方法可以接受的信息最大量 upload_tmp_dir //上传文件存放的临时路径,可以是绝对路径。这个目录对于拥有此服务器进程用户必须是可写的。
注意:修改完配置文件后重新启动服务器。
(相关学习视频分享:php视频教程)
2、$_FILES多维数组,用于存储各种与上传有关的信息
$_FILES[‘file’][‘name’] //客户端上传的文件原名称,含扩展名 $_FILES[‘file’][‘size’] //已上传文件的大小,单位为字节 $_FILES[‘file][‘tmp_name’] //文件上传后,在服务器端存储的临时文件名 $_FILES[‘file][‘error’] //文件上传时产生的错误 0:文件上传成功 1:上传文件的大小超出了在PHP配置文件中upload_max_filesize选项限制的值 2:上传文件大小超出了HTML表单中MAX_FILE_SIZE选项指定的值 3:文件只被部分上传 4:没有上传任何文件 $_FILES[‘file’][‘type’] //上传文件的类型,每种MIME类型由‘/’分隔主类型和子类型组成
3、PHP文件上传处理函数
is_uploaded_file() //判断指定的文件是否通过HTTP POST上传的 move_uploaded_file() //文件上传后先存储于服务器的临时目录中,使用该函数移动文件位置
示例:
<?php header('Content-type:text/html;charset=utf-8'); //判断客户端是否有提交动作 if(isset($_POST['submit'])){ //判断文件是否通过HTTP POST上传的 if(is_uploaded_file($_FILES['myfile']['tmp_name'])){ //用于服务器端显示客户端上传文件的后缀名.返回值是一个数组 $arr=pathinfo($_FILES['myfile']['name']); //以年 月 日的格式命名客户端上传的文件名并随机产生一个数,避免名字相同 $newName=date('YmdGis').rand(1000,99999); if(move_uploaded_file($_FILES['myfile']['tmp_name'],"C:/123/{$newName}.{$arr['extension']}")){ echo '成功'; }else{ echo '失败'; } }else{ exit('....'); } } var_dump($_FILES); ?> <DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>文件上传</title> </head> <body> <form method="post" action="" enctype="multipart/form-data"> <input type="file" name="myfile"/> <input type="submit" name="submit" value="开始上传"/> </form> </body> </html>
结果如图:
相关文章教程推荐:php教程
热心网友 时间:2022-04-29 09:49
文件上传上来是在内存中的,用$_FILES从里面取出然后用move_uploaded_file()移动到你定义的目录里.