PHP批量上传图片教程

4星 · 超过85%的资源 需积分: 19 9 下载量 37 浏览量 更新于2024-09-15 收藏 32KB DOC 举报
"这篇文本是关于使用PHP实现批量上传图片的教程分享,主要涉及JavaScript辅助实现动态添加上传字段的功能。" 在PHP开发中,批量上传图片是一项常见的需求,尤其是在处理用户上传多张照片或者产品图册时。本教程将介绍如何通过PHP结合HTML和JavaScript来实现这一功能。 首先,我们需要创建一个HTML表单,该表单使用`multipart/form-data`编码类型,这是上传文件所必需的。表单包含一个按钮,当用户点击时,会调用JavaScript函数来动态添加新的文件输入字段,允许用户选择多张图片进行上传。 HTML部分代码如下: ```html <form action="?action=uppic" enctype="multipart/form-data" method="post" name="Form1" id="Form1"> <table width="100%" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC" id="from"> <tbody> <tr> <td height="28" bgcolor="#FFFFFF"></td> <td align="left" bgcolor="#FFFFFF"> <table id="Table1" cellpadding="3" cellspacing="0" width="60%"> <tbody id="lines" name="lines"> </tbody> </table> <input id="addrow" name="addrow" type="button" value="加一张" onclick="tbladdrows(1);" class="inputbut"> </td> </tr> </tbody> </table> </form> ``` JavaScript部分,我们定义了两个函数:`tbladdrow()` 和 `tbladdrows()`。前者用于向表格中添加一行,包含一个文件输入字段;后者接受参数,根据参数值连续添加指定数量的行。这使得用户可以根据需要动态增加图片上传的字段。 ```javascript <script language="javascript"> var lines = document.getElementById('lines'); function tbladdrow() { var i = lines.rows.length; var row = Table1.insertRow(Table1.rows.length); var col = row.insertCell(0); col.innerHTML = '<input class="inputbut" id="imgfile[' + i + ']" type="file" name="imgfile[' + i + ']" size="50">'; } function tbladdrows(items) { for (i = 1; i <= items; i++) { tbladdrow(); } } function delrow() { if (lines.rows.length == 0) { return false; } lines.deleteRow(); } </script> ``` 在后端,PHP将处理这些上传的文件。由于这部分代码没有给出,这里提供一个简单的PHP上传图片的示例: ```php <?php if(isset($_FILES['imgfile'])) { $errors = array(); foreach($_FILES['imgfile']['tmp_name'] as $key => $tmp_name){ $file_name = $_FILES['imgfile']['name'][$key]; $file_size = $_FILES['imgfile']['size'][$key]; $file_tmp = $_FILES['imgfile']['tmp_name'][$key]; $file_type = $_FILES['imgfile']['type'][$key]; if($file_size > 2097152){ $errors[] = '文件大小超过了2MB'; } if(empty($errors)==true){ move_uploaded_file($file_tmp, "uploads/".$file_name); echo "文件成功上传<br>"; }else{ print_r($errors); } } } ?> ``` 这段PHP代码会检查每个上传的文件,如果文件大小超过2MB,它会记录错误。如果没有错误,文件会被移动到服务器上的"uploads"目录下。请注意,你需要确保"uploads"目录存在并且有正确的权限设置,以便PHP能够写入文件。 批量上传图片的关键在于前端动态生成多个文件输入字段和后端处理这些文件的PHP脚本。这个示例提供了实现这一功能的基本框架,但实际应用中可能需要对文件大小、文件类型、错误处理等方面进行更严格的控制,以确保安全性和用户体验。