1

我无法使用 html 控件上传文件。

假设我有两个图像文件 image1.jpg 和 image2.jpg

image1 被上传 image2 没有

image1 一切正常,为 image2 调用相同的代码,但未上传 image2。它没有给出任何错误。

没有文件大小和/或扩展名等上传限制。我还更改了 php.ini,更改了 maxpostsize、uploadsize 和内存限制。请帮忙,我已经搜索了三天,但没有得到答复。

if(isset($_POST['submitBtn']))
{
$title=$_POST['titleTxt'];
mysql_query("INSERT into tblsliderphotos (title) values('$title')") or 
die(mysql_error());

    if($_FILES['file']['name']!="")
    {
    //echo $_FILES['file']['name'];
    $tblData=mysql_query("Select MAX(photoid) as id from tblsliderphotos");
    $row=mysql_fetch_array($tblData);

    $id=$row['id'];

    $path="photos/SliderPhotos/". $id.".".$image_ext;
    echo $path;
    move_uploaded_file($_FILES["file"]["tmp_name"],"../../".$path);
    mysql_query("Update tblsliderphotos SET path='".$path."' where 
photoid=".$id);
    }
}
4

1 回答 1

0

我认为问题不在于 php env。但与您的上传文件处理。

假设您的 html 代码如下所示

<form action="someaction" method="post" enctype="multipart/form-data">
<input type="text" name="title" />
<input type="file" name="file" />
<input type="file" name="file2" />
<input type="submit" name="submitBtn" value="Submit">
</form>

现在,您必须注意有两个类型为“file”的输入,第一个具有名称值“file”,第二个具有名称值“file2”。

当您想同时处理这两种情况时,您必须单独处理每个文件。如下:

$_FILES['file'] // this will give you information about the first input "file"

$_FILES['file2'] // this will give you information about the second input "file2"

现在,当您要上传两个文件时,您必须为每个文件都执行此操作。如下:

 // handling first file
if($_FILES['file']){
   echo $_FILES['file']['name'];
   move_uploaded_file($_FILES["file"]["tmp_name"],"../../".$path);
}

// handling second file
if($_FILES['file2']){
   echo $_FILES['file2']['name'];
   move_uploaded_file($_FILES["file2"]["tmp_name"],"../../".$path);
}

这会将两个文件上传到您的 $path

但是,您可以通过循环 $_FILES 变量来做同样的事情,如下所示:

 foreach($_FILES as $key => $value){
     echo $key."\r\n";
     echo $value['name'];
     move_uploaded_file($value["tmp_name"],"../../".$path);
 }

我希望这有帮助

于 2012-11-11T12:49:19.180 回答