在 Web 开发领域,图像库、文档等任务通常需要上传多个文件的能力管理系统等。本教程将指导您完成使用 PHP 和 jQuery 启用多个文件上传的过程。
HTML 表单用作选择要上传的文件的界面。在这里,我们有一个类型为“file”的输入字段,其中设置了“multiple”属性以允许选择多个文件:
<input id="myfile" type="file" name="myfile" multiple=multiple/>
单击“上传”按钮时,sendfile() 函数为通过 onclick 事件处理程序触发。
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]); }
在服务器端,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中文网其他相关文章!