时间:2021-07-01 10:21:17 帮助过:6人阅读
一.html代码
- <body>
- <form action="" method="post" enctype="multipart/form-data" name="upload_form">
- <label>选择图片文件</label>
- <input name="imgfile" type="file" accept="image/gif, image/jpeg"/>
- <input name="upload" type="submit" value="上传" />
- </form>
- </body>
二.php代码
- if (isset($_FILES['imgfile'])
- && is_uploaded_file($_FILES['imgfile']['tmp_name']))
- {
- $imgFile = $_FILES['imgfile'];
- $upErr = $imgFile['error'];
- if ($upErr == 0)
- {
- $imgType = $imgFile['type']; //文件类型。
- /* 判断文件类型,这个例子里仅支持jpg和gif类型的图片文件。*/
- if ($imgType == 'image/jpeg'
- || $imgType == 'image/gif')
- {
- $imgFileName = $imgFile['name'];
- $imgSize = $imgFile['size'];
- $imgTmpFile = $imgFile['tmp_name'];
- /*
- 将文件从临时文件夹移到上传文件夹中。
- 注意:upfile这个文件夹必须先创建好,不然会报错。
- */
- move_uploaded_file($imgTmpFile, 'upfile/'.$imgFileName);
- /*显示上传后的文件的信息。*/
- $strPrompt = sprintf("文件%s上传成功<br>"
- . "文件大小: %s字节<br>"
- . "<img src='upfile/%s'>"
- , $imgFileName, $imgSize, $imgFileName
- );
- echo $strPrompt;
- }
- else
- {
- echo "请选择jpg或gif文件,不支持其它类型的文件。";
- }
- }
- else
- {
- echo "文件上传失败。<br>";
- switch ($upErr)
- {
- case 1:
- echo "超过了php.ini中设置的上传文件大小。";
- break;
- case 2:
- echo "超过了MAX_FILE_SIZE选项指定的文件大小。";
- break;
- case 3:
- echo "文件只有部分被上传。";
- break;
- case 4:
- echo "文件未被上传。";
- break;
- case 5:
- echo "上传文件大小为0";
- break;
- }
- }
- }
- else
- {
- }
三.php代码分析:
$_FILES是一个数组变量,用于保存上传后的文件信息。
$_FILES['imgfile']表示文件域名称为'imgfile'的控件提交服务器后,上传的文件的信息。
一个上传的文件,有以下属性信息:
'name': 上传的文件在客户端的名称。
'type': 文件的 MIME 类型,例如"image/jpeg"。
'size': 已上传文件的大小,单位为字节。
'tmp_name':上传时,在服务器端,会把上传的文件保存到一个临时文件夹中,可以通过此属性得到临时文件名。
'error':文件在上传过程中的错误代码。如果上传成功,此值为0,其它值的意义如下:
1:超过了php.ini中设置的上传文件大小。
2:超过了MAX_FILE_SIZE选项指定的文件大小。
3:文件只有部分被上传。
4:文件未被上传。
5:上传文件大小为0。
代码中首先判断$_FILES['imgfile']变量是否存在,如果存在,并且$_FILES['imgfile']['tmp_name']变量所指文件被上传了,判断error属性,如果属性为0,把上传后的图像从临时文件夹移到upfile文件夹中,显示上传文件的信息,并显示上传后的图像。
如果error值不为0,表示上传失败,显示失败信息。
四.完整代码
- <!DOCTYPE html >
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>上传图片文件</title>
- </head>
- <?php
- if (isset($_FILES['imgfile'])
- && is_uploaded_file($_FILES['imgfile']['tmp_name']))
- {
- $imgFile = $_FILES['imgfile'];
- $upErr = $imgFile['error'];
- if ($upErr == 0)
- {
- $imgType = $imgFile['type']; //文件类型。
- /* 判断文件类型,这个例子里仅支持jpg和gif类型的图片文件。*/
- if ($imgType == 'image/jpeg'
- || $imgType == 'image/gif')
- {
- $imgFileName = $imgFile['name'];
- $imgSize = $imgFile['size'];
- $imgTmpFile = $imgFile['tmp_name'];
- /* 将文件从临时文件夹移到上传文件夹中。*/
- move_uploaded_file($imgTmpFile, 'upfile/'.$imgFileName);
- /*显示上传后的文件的信息。*/
- $strPrompt = sprintf("文件%s上传成功<br>"
- . "文件大小: %s字节<br>"
- . "<img src='upfile/%s'>"
- , $imgFileName, $imgSize, $imgFileName
- );
- echo $strPrompt;
- }
- else
- {
- echo "请选择jpg或gif文件,不支持其它类型的文件。";
- }
- }
- else
- {
- echo "文件上传失败。<br>";
- switch ($upErr)
- {
- case 1:
- echo "超过了php.ini中设置的上传文件大小。";
- break;
- case 2:
- echo "超过了MAX_FILE_SIZE选项指定的文件大小。";
- break;
- case 3:
- echo "文件只有部分被上传。";
- break;
- case 4:
- echo "文件未被上传。";
- break;
- case 5:
- echo "上传文件大小为0";
- break;
- }
- }
- }
- else
- {
- /*显示表单。*/
- ?>
- <body>
- <form action="" method="post" enctype="multipart/form-data" name="upload_form">
- <label>选择图片文件</label>
- <input name="imgfile" type="file" accept="image/gif, image/jpeg"/>
- <input name="upload" type="submit" value="上传" />
- </form>
- </body>
- <?php
- }
- ?>
- </html>
相关文章推荐:
php类型约束是什么?php类型约束简介和用法
php中删除数组一个元素和从数组中删除多个元素的方法总结(附代码)
以上就是php和html结合实现上传图片文件到服务器的代码的详细内容,更多请关注Gxl网其它相关文章!