• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php基础知识(5)-文件下传

php 搞代码 3年前 (2022-01-23) 14次浏览 已收录 0个评论

php基础知识(5)-文件上传
php基础知识-文件上传

示例代码下载页http://xieye.iteye.com/blog/1336095

可以使用户上传文本和二进制文件。用 PHP 的认证和文件操作函数,可以完全控制允许哪些人上传以及文件上传后怎样处理。

相关的设置: 请参阅 php.ini 的 file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size 以及 max_input_time 设置选项
默认情况下,php的配置允许上传,而且文件大小不能超过2M。

php上传需要构建特殊表单,其实就是表单多了一个属性 enctype=”multipart/form-data”,还有表单元素中多了一个file元素。
在服务端需要使用move_uploaded_file 函数,并有一个$_FILE超全局变量可用。
以下抄自php手册
<<<
$_FILES[‘userfile’][‘name’]
客户端机器文件的原名称。

$_FILES[‘userfile’][‘type’]
文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。

$_FILES[‘userfile’][‘size’]
已上传文件的大小,单位为字节。

$_FILES[‘userfile’][‘tmp_name’]
文件被上传后在服务端储存的临时文件名。

$_FILES[‘userfile’][‘error’]
和该文件上传相关的错误代码。此项目是在 PHP 4.2.0 版本中增加的。

>>>

建议1:实际应用中用户上传的文件不应与程序放在同一目录(那是个糟糕的习惯),本教程为简单起见放到了一起。
建议2:为系统安全,总是应该给上传文件重命名,如需保存原文件名,可以保存到数据库。
建议3:如果用户经常会上传文件,则应该在某个目录下建子目录,如uploadfile目录下有20120102,20120103等按天的目录,
用户上传的文件按天存放在各自的目录中。
建议4:不建议把上传文件按内容存放于各自的文件夹,除非文件少。因为同一目录下有太多文件时(比如超过10000个),系统检索速度会变慢
,无论linux还是windows。
建议5:如果建了子目录,通常需要把路径也存放于数据库中。

例子1:
http://localhost/command/peixun/upload/1.php
普通的上传文件的代码,上传完之后可以到文件夹中检查一下是否真的上传了。

例子2
参考来源;http://www.phpletter.com/Our-Projects/AjaxFileUpload/
使用了jquery库和一个jquery插件ajaxfileupload

测试url
http://localhost/command/peixun/upload/2.php
用js来上传文件,客户端代码变了,但服务端代码完全不变。

代码可下载

1.php

<?php//第一个例子require_once('../Public/CommandLine.php');$isget = ($_SERVER['REQUEST_METHOD'] == 'GET') ? 1 : 0;if ($isget) {    $html = <<<longs    <body>      请选择文件:    
longs; echo $html; } else { $file = $_FILES['file1']; $oldname = $file['tmp_name']; $result = move_uploaded_file($oldname, $file['name']);//可以随意替换名称 echo $file['name'] . '上传成功,请到当前文件夹下去检查'; }

2.php

<?php//第一个例子require_once('../Public/CommandLine.php');$isget = ($_SERVER['REQUEST_METHOD'] == 'GET') ? 1 : 0;if ($isget) {    $html = <<<longs    <link href="ajaxfileupload.css" type="text/css" rel="stylesheet">    <script type="text/javascript" src="jquery-1.6.2.min.js"></script>    <script type="text/javascript" src="ajaxfileupload.js"></script>    <script type="text/javascript">    function ajaxFileUpload()    {        $("#loading")        .ajaxStart(function(){            $(this).show();        })        .ajaxComplete(function(){            $(this).hide();        });        $.ajaxFileUpload        (            {                url:'2.php',                secureuri:false,                fileElementId:'fileToUpload',                dataType: 'json',                success: function (data, status)                {                    alert('上传成功')                },                error: function (data, status, e)                {                    alert(e);                }            }        )                return false;    }    </script>           <body>  

Ajax文件上6来源gaodaimacom搞#^代%!码网搞gaodaima代码传示例


longs; echo $html; } else { //注意:这里是不显示的。 $file = $_FILES['fileToUpload']; $oldname = $file['tmp_name']; $result = move_uploaded_file($oldname, $file['name']);//可以随意替换名称 echo '{}'; }

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php基础知识(5)-文件下传

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址