如何在PHP中上载两个文件

如何在PHP中上载两个文件,php,file-upload,Php,File Upload,我正在尝试使用以下代码在一个提交按钮中上载两个文件: <label>Logo Image *</label> <input type="file" name="ufile[]"/> <label>Banner Image *</label> <input type="file" name="ufile[]"/> 徽标图像* 横幅图像* PHP $logo = $_FILES['ufile']['name'][0]; $b

我正在尝试使用以下代码在一个提交按钮中上载两个文件:

<label>Logo Image *</label>
<input type="file" name="ufile[]"/>
<label>Banner Image *</label>
<input type="file" name="ufile[]"/>
徽标图像*
横幅图像*
PHP

$logo = $_FILES['ufile']['name'][0];
$block_img = $_FILES['ufile']['name'][1];

 if ($_FILES['ufile']['name']["error"] > 0) {
    echo "error<br>";
   }
  else {
    if (file_exists("small-image/" .  $_FILES['ufile']['name'][0])){
        echo $_FILES['ufile']['name'][1] . "File already exists in server. ";
    }
    else {
        move_uploaded_file($_FILES['ufile']['name'][0], "small-image/" . $_FILES['ufile']['name'][0]);
        move_uploaded_file($_FILES['ufile']['name'][1], "small-image/" . $_FILES['ufile']['name'][1]);
    }
 }

$sql_query = "UPDATE header_img SET logo_img = '$logo', block_img = '$block_img' WHERE banner_id = 1";
$logo=$\u文件['ufile']['name'][0];
$block\u img=$\u文件['ufile']['name'][1];
如果($\u文件['ufile']['name'][“error”]>0){
回显“错误
”; } 否则{ 如果(文件_存在(“小图像/”$_文件['ufile']['name'][0])){ echo$\u文件['ufile']['name'][1]。“服务器中已存在文件。”; } 否则{ 移动上传的文件($文件['ufile']['name'][0],“小图像/”$文件['ufile']['name'][0]); 移动上传的文件($文件['ufile']['name'][1],“小图像/”$文件['ufile']['name'][1]); } } $sql\u query=“更新标题\u img SET logo\u img='$logo',block\u img='$block\u img',其中banner\u id=1”;
我的数据库正在正确更新,但文件未上载。是的,有一个777目录名为“small image”

有什么想法吗?
谢谢。

当你使用
移动上传的文件时,你想使用
$\u文件['ufile']['tmp\u name']
,这就是文件当前所在的位置

move_uploaded_file($_FILES['ufile']['tmp_name'][0], "small-image/" . $_FILES['ufile']['name'][0]);
move_uploaded_file($_FILES['ufile']['tmp_name'][1], "small-image/" . $_FILES['ufile']['name'][1]);

检查文档中的示例:

不要使用此代码。您将使服务器完全处于完全远程接管的状态。您完全没有文件验证,正在使用用户提供的文件名等。。。恶意用户可以使用此代码在服务器上任意位置涂鸦文件。除此之外,您还容易受到SQL注入的攻击。如果你有意这样做,你就不能写得不安全。谢谢你的指导,但这实际上是一项测试工作。