首页  >  文章  >  后端开发  >  如何用PHP和jQuery实现多个文件上传?

如何用PHP和jQuery实现多个文件上传?

Linda Hamilton
Linda Hamilton原创
2024-10-26 19:34:031007浏览

How to Implement Multiple File Uploads in PHP and jQuery?

在 PHP 和 jQuery 中处理多个文件上传

在 Web 开发领域,图像库、文档等任务通常需要上传多个文件的能力管理系统等。本教程将指导您完成使用 PHP 和 jQuery 启用多个文件上传的过程。

HTML 和表单设置

HTML 表单用作选择要上传的文件的界面。在这里,我们有一个类型为“file”的输入字段,其中设置了“multiple”属性以允许选择多个文件:

<input id="myfile" type="file" name="myfile" multiple=multiple/>

单击“上传”按钮时,sendfile() 函数为通过 onclick 事件处理程序触发。

jQuery 和 FormData

sendfile() 函数利用 jQuery 构造 FormData 对象。该对象允许包含表单数据(包括文件)发送到服务器端脚本。每个选定的文件都会附加到 FormData 对象中:

for (var i = 0, len = document.getElementById('myfile').files.length; i < len; i++) {
    fd.append("myfile", document.getElementById('myfile').files[i]);                
}

服务器端 PHP 脚本

在服务器端,uploadfile.php 脚本处理文件上传:

<code class="php">$target = "uploadfolder/";
// for($i=0; $i <count($_FILES['myfile']['name']); $i++){
    if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target.$_FILES['myfile']['name'])) { 
        echo 'Successfully copied'; 

    }else{       
        echo 'Sorry, could not copy';
    }   
// } 

但是,此代码不完整,因为它缺少迭代多个文件的循环。您需要实现所提供的正确答案中所示的循环。

示例更新(基于答案)

在答案中提供的示例中,jQuery 代码和 HTML 结构是类似于上面不完整的代码。主要区别在于 load.php 脚本:

已实现循环来处理多个文件。

<code class="php">foreach ($_FILES as $key) {
    if($key['error'] == UPLOAD_ERR_OK ){
        $name = $key['name'];
        $temp = $key['tmp_name'];
        $size= ($key['size'] / 1000)."Kb";
        move_uploaded_file($temp, $path . $name);
        echo "
            <div>
                <h1>File Name: $name</h1><br />
                <h1>Size: $size</h1><br />
                <hr>
            </div>
            ";
    }else{
        echo $key['error'];
    }
}

以上是如何用PHP和jQuery实现多个文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn