PHP文件上传
来源:互联网 发布:淘宝图片怎么搜索引擎 编辑:程序博客网 时间:2024/06/18 09:28
先写好HTML
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <form action="save_img.php" enctype="multipart/form-data" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <label for="img">上传图片: </label> <input type="file" id="img" name="userImg"> <input type="submit" value="上传"> </form></body></html>
注意<form>
的enctype
必须为multipart/form-data
,这样才能文件上传。<input type="hidden" name="MAX_FILE_SIZE" value="100000">
指定文件上传的大小。现在看一下save_img.php
文件
if($_FILES['userImg']['error'] > 0) { echo 'File upload failed, error code = '.$_FILES['userImg']['error']; exit;}echo "file type: ".$_FILES['userImg']['type'].'<br/>';$path = $_SERVER['DOCUMENT_ROOT'].'/../test/';$newFile = $path.$_FILES['userImg']['name'];if(file_exists($newFile)) { echo 'file is exist, upload failed;'; exit;}if(is_uploaded_file($_FILES['userImg']['tmp_name'])) { if(!move_uploaded_file($_FILES['userImg']['tmp_name'], $newFile)) { echo 'Could not move file to new path! You may not have permission;'; exit; }} else { echo 'Failed;'; exit;}
PHP
代码中,文件相关的数据保存在$_FILES
超级全局数组中。
对于HTML
中的<input type="file" id="img" name="userImg">
,我们可以再PHP
中使用$_FILES['userImg']['xxx']
来获取该文件的信息(xxx
自己填写)。
1. $_FILES['userImg']['tmp_name']
表示文件在web
服务器中的临时位置(脚本运行结束时该文件会被删除)。
2. $_FILES['userImg']['name']
表示文件的名称。
3. $_FILES['userImg']['size']
表示文件的字节大小。
4. $_FILES['userImg']['type']
表示文件的MIME
类型。
5. $_FILES['userImg']['error']
表示任何与文件上传相关的错误代码。
相关错误代码 =>
UPLOAD_ERROR_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,表示没有上传任何文件。UPLOAD_NO_TMP_DIR
值为6,表示在php.ini
文件中没有指定临时文件目录。UPLOAD_ERR_CANT_WRITE
值为7,表示将文件写入磁盘失败现在继续分析
php
代码,$_FILES['userImg']['error'] > 0
判断文件是否上传成功;$_SERVER['DOCUMENT_ROOT']
获得服务器的根目录;$newFile = $path.$_FILES['userImg']['name'];
给定文件最后存放的指定位置;file_exists($newFile)
判断文件是否已经存在;is_uploaded_file($_FILES['userImg']['tmp_name'])
判断该文件是否为上传文件(有可能恶意上传的文件会导致访问不该访问的地方);move_uploaded_file($_FILES['userImg']['tmp_name'], $newFile)
将临时文件移动到指定位置。注意:
linux
下,用户应该有访问存放目录的权限,可以设置其为777权限;
- php 上传文件文件
- PHP上传文件
- PHP文件的上传
- php上传文件
- PHP文件上传
- php上传文件
- PHP上传文件
- [PHP]文件上传处理
- php多文件上传`
- PHP实现文件上传
- PHP文件上传
- PHP文件上传
- 关于php文件上传
- PHP文件上传代码
- PHP文件上传
- php 文件上传,
- PHP上传文件代码
- php文件上传
- python中如何避免中文是乱码
- 设计模式——单例模式
- 全局变量、局部变量
- HDU 2034 人见人爱A-B
- Maven动态切换配置文件
- PHP文件上传
- android语言国际化
- 机器学习(七):集成方法(2)Boost
- JDK8新特性—Lambda简洁代码以及其他
- 1089. Insert or Merge (25)
- JavaScript内置对象--单体内置对象(Global、Math)详解
- 设计模式——工厂方法模式
- Dijkstra算法
- android高性能webview之crosswalk