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

Linda Hamilton
发布: 2024-10-26 19:34:03
原创
1006 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!