php开发之文件上传

1,配置php.ini文件
主要对下面几个属性值进行设置:
技术分享
技术分享
2,预定义变量
列表如下:
技术分享
创建一个上传域,通过_FILES变量输出上传文件的资料。示例代码如下:


<form action="" enctype="multipart/form-data" method="post" 
name="uploadfile">上传文件:<input type="file" name="upfile" /><br> 
<input type="submit" value="上传" /></form> 
<?php 

if (is_uploaded_file($_FILES[‘upfile‘][‘tmp_name‘])) {
    $upfile =$_FILES["upfile"];
    foreach ($upfile as $value) {

        echo $value."<br>";
    }


}

?>

运行结果如下:
技术分享

3,文件上传函数
php中使用move_uploaded_file()函数上传文件,语法如下:
bool move_uploaded_file(string filename,string destination)
该函数将文件上传到指定的位置,如果成功则返回true,失败则返回false。参数filename,事临时文件名,即$_FILE[tmp_name];参数destination是上传后保存的新的路径和名称。

示例代码如下:


<form action="" enctype="multipart/form-data" method="post" 
name="uploadfile">上传文件:<input type="file" name="upfile" /><br> 
<input type="submit" value="上传" /></form> 
<?php 

if (is_uploaded_file($_FILES[‘upfile‘][‘tmp_name‘])) {
    $upfile =$_FILES["upfile"];
    if (move_uploaded_file($upfile[‘tmp_name‘], $upfile[‘name‘])) {
        echo "上传成功";
    }else{
        echo "上传失败";
    }



}

?>

运行结果如下:
技术分享

4,多文件上传
多文件上传有多种方法,下面我们根据单文件上传来演化出一种多文件上传。代码示例如下:


<form action="index.php" enctype="multipart/form-data" method="post" 
name="uploadfile">上传文件:<br> 
<input type="file" name="upfile1" /><br>
<input type="file" name="upfile2" /><br>
<input type="file" name="upfile3" /><br>
<input type="submit" value="上传" /><br> 
</form> 
<?php 

//  header(‘Content-Type:text/html;charset=utf-8‘);
$file1 =$_FILES[‘upfile1‘];
$file2 =$_FILES[‘upfile2‘];
$file3 =$_FILES[‘upfile3‘];

if ($file1[‘error‘] == UPLOAD_ERR_OK){

    echo "路径:".$file1[‘name‘]."<br>";
    if (move_uploaded_file($file1[‘tmp_name‘], $file1[‘name‘])) {
        echo "上传成功<br>";
    }else{
        echo "上传失败<br>";
    }
}
if ($file2[‘error‘] == UPLOAD_ERR_OK){

        echo "路径:".$file2[‘name‘]."<br>";
        if (move_uploaded_file($file2[‘tmp_name‘], $file2[‘name‘])) {
            echo "上传成功<br>";
        }else{
            echo "上传失败<br>";
        }
}
        if ($file3[‘error‘] == UPLOAD_ERR_OK){

            echo "路径:".$file3[‘name‘]."<br>";
            if (move_uploaded_file($file3[‘tmp_name‘], $file3[‘name‘])) {
                echo "上传成功<br>";
            }else{
                echo "上传失败<br>";
            }

        }   



?>

运行结果如下:
技术分享

第二种多文件上传的方式的示例代码如下:


<form action="index.php" enctype="multipart/form-data" method="post" 
name="uploadfile">上传文件:<br> 
<input type="file" name="upfile[]" /><br>
<input type="file" name="upfile[]" /><br>
<input type="file" name="upfile[]" /><br>
<input type="submit" value="上传" /><br> 
</form> 
<?php 

//  header(‘Content-Type:text/html;charset=utf-8‘);
$filearray =$_FILES[‘upfile‘];
print_r($filearray);
foreach ($filearray[‘error‘] as $key =>$error)
{

    if ($error==UPLOAD_ERR_OK) {
        echo "文件名:".$filearray[‘name‘][$key]."<br>";
        if (move_uploaded_file($filearray[‘tmp_name‘][$key], $filearray[‘name‘][$key])) {
            echo "上传成功<br>";
        }else{
            echo "上传失败<br>";
        }
    }
}

?>

运行结果如下:

技术分享

除了上面的两种,还有第三种多个文件上传的方式,当然也是我觉得最完美的方式,就是可以一次选择多个文件进行上传。主要就是利用swfupload 来实现。由于我目前的知识有限,会在后面和大家共同学习这个。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。