求PHP网页上传文件代码.

能上传如:.zip.rar.exe.txt等文件的代码
不胜感激!!!

自定义文件上传函数


<?php
/**
* 文件上传
*/
/**
* 文件上传函数
* @param $name string 表单上传框的name值
* @param $file_arr array 上传文件的类型限制
* @param $filesize int 上传文件限制其大小
* @param $path string 文件的保存路径
* @return string 成功返回 "上传成功及文件名"
*/
function uploads($name,$file_arr=array('jpg','png','gif','JPG','GIF','PNG'),$filesize=3145728,$path='uploads'){
//1、检测文件的错误信息,如果是0 就允许上传(保存)
$err=$_FILES[$name]['error'];
if($err>0){
if($err==1){
return '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。';
}elseif($err==2){
return '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 ';
}elseif($err==3){
return '文件只有部分被上传。';
}elseif($err==4){
return'没有文件上传';
}elseif($err>=5){
return '其他错误';
}
}
//2、检测文件的类型,是否是我们需要的(png、gif、jpg)
$pre=pathinfo($_FILES[$name]['name'],PATHINFO_EXTENSION);
if(!in_array($pre,$file_arr)){
return '上传的文件类型不符';
}
//3、检测文件大小
if($_FILES[$name]['size']>$filesize){
return '上传的文件太大';
}
//4、保存文件
$file_name=date('YmdHis',time()).mt_rand(1000,9999).'.'.$pre;
if(is_uploaded_file($_FILES[$name]['tmp_name'])){
move_uploaded_file($_FILES[$name]['tmp_name'], $path."/".$file_name);
return '上传成功|'.$file_name;
}else{
return "文件上传失败!";
}

}
?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-31

php多文件上传实现代码,你可以参考一下

index_uploads.php


<html>
<head>
    <meta charset="utf-8">
    <title>index_uploads</title>
</head>
<body>
    <form action="uploads.php" method="post" enctype="multipart/form-data">
        <input type="file" name="file[]">
        <br>
        <input type="file" name="file[]">
        <br>
        <input type="submit" value="uploads">
    </form>
</body>
</html>


uploads.php


<?php
            header("content-type:text/html;charset=utf-8");
            echo "<pre>";
            print_r($_FILES);
            echo "</pre>";  
             $count = count($_FILES['file']['name']); 
             for ($i = 0; $i < $count; $i++) {
                $tmpfile = $_FILES['file']['tmp_name'][$i];
                $filefix = array_pop(explode(".", $_FILES['file']['name'][$i]));
                $dstfile = "uploads/files/".time()."_".mt_rand().".".$filefix; 
                 if (move_uploaded_file($tmpfile, $dstfile)) {
                    echo "<script>alert('succeed!');window.location.href='index_uploads.php';</script>";
                } else {
                    echo "<script>alert('fail!');window.location.href='index_uploads.php';</script>";
                }
            }

第2个回答  2009-02-28
帮楼上的改一改:
f($file_ext!="zip" && $file_ext!="rar" && $file_ext!="exe" && $file_ext!="txt"){
这里“||”应该改“&&”,否则不能过滤扩展名。
最后一行:
move_uploaded_file($_FILES['fileinput']['tmpname'],$_FILES['fileinput']['name']);
PHP中上传文件的函数应该是move_uploaded_file()
第3个回答  2019-07-06
自定义文件上传函数

<?php
/**
*
文件上传
*/
/**
*
文件上传函数
*
@param
$name
string
表单上传框的name值
*
@param
$file_arr
array
上传文件的类型限制
*
@param
$filesize
int
上传文件限制其大小
*
@param
$path
string
文件的保存路径
*
@return
string
成功返回
"上传成功及文件名"
*/
function
uploads($name,$file_arr=array('jpg','png','gif','JPG','GIF','PNG'),$filesize=3145728,$path='uploads'){
//1、检测文件的错误信息,如果是0
就允许上传(保存)
$err=$_FILES[$name]['error'];
if($err>0){
if($err==1){
return
'上传的文件超过了
php.ini

upload_max_filesize
选项限制的值。';
}elseif($err==2){
return
'上传文件的大小超过了
HTML
表单中
MAX_FILE_SIZE
选项指定的值。
';
}elseif($err==3){
return
'文件只有部分被上传。';
}elseif($err==4){
return'没有文件上传';
}elseif($err>=5){
return
'其他错误';
}
}
//2、检测文件的类型,是否是我们需要的(png、gif、jpg)
$pre=pathinfo($_FILES[$name]['name'],PATHINFO_EXTENSION);
if(!in_array($pre,$file_arr)){
return
'上传的文件类型不符';
}
//3、检测文件大小
if($_FILES[$name]['size']>$filesize){
return
'上传的文件太大';
}
//4、保存文件
$file_name=date('YmdHis',time()).mt_rand(1000,9999).'.'.$pre;
if(is_uploaded_file($_FILES[$name]['tmp_name'])){
move_uploaded_file($_FILES[$name]['tmp_name'],
$path."/".$file_name);
return
'上传成功|'.$file_name;
}else{
return
"文件上传失败!";
}
}
?>
第4个回答  2009-03-01
呵呵感谢楼下给我纠正,不过copy也可以复制缓存中的文件呵呵,不一定用move_uploaded_file

HTML页

<form method="POST" enctype="multipart/form-data" action="upload.php">
<input type="file" name="fileinput" size="20"><input type="submit" value="提交">
</form>

upload.php页

<?php
//取得原名
$filename=$_FILES["fileinput"]["name"];
//取得扩展名
$file_ext=explode(".",$filename);
$file_ext=$file_ext[count($file_ext)-1];
$file_ext=strtolower($file_ext);

if($file_ext!="zip"||$file_ext!="rar"||$file_ext!="exe"||$file_ext!="txt"){
echo "类型错误";
exit;
}
//判断文件大小
if($_FILES["fileinput"]["size"]>100*1024){
echo "文件必须小于100K";
exit;

}

//创建一个新的文件名
$newname=date("YmdHis").".".$file_ext;

//从缓存中把文件复制到目标地址
copy($_FILES["fileinput"]["tmp_name"],"目标地址"."新文件名");
?>

随手写了一个没测试,你试试吧,应该好用的本回答被提问者采纳