0

我写了这段代码,但我有一个问题。当有人点击提交时,我无法验证是否没有上传文件,我无法具体说明允许的扩展,例如“.jpg”。我怎么能在“foreach”中做到这一点,当我只上传一张图片时我可以做到这一点,但是这个代码用于多上传,如果你注意到我在表单中使用了数组。

<?php 
mysql_connect('localhost','root','root')or die (mysql_error());
mysql_select_db('storeimage');
?>
<?
if ($_POST['submit'] ){
  $file=$_FILES['file'];
  $name=$_FILES['file']['name'];
  $tmp_name=$_FILES['file']['tmp_name'];

  foreach($name as $key=>$value){
    $name_file=$name[$key];
    $tmp_file=$tmp_name[$key];
    $imgpath = rand().'.jpeg'; 

    move_uploaded_file($tmp_file,'images/'.$imgpath);

    $insert=mysql_query("insert into  imagelocation values('','images/$imgpath')")or die (mysql_error());
    $id=mysql_insert_id();

    $select=mysql_query("select * from  imagelocation where id='$id' ");

    while ($row=mysql_fetch_object($select)){
      echo "<center><img src='$row->images'/></center><br/>";
    }
  }
}
?>
<form action='' method='post' enctype='multipart/form-data'>
<input type='file' name='file[]' multiple />
<input type='submit' name='submit'/>
</form>
4

2 回答 2

0

从来没有那样做,但大概就像

foreach ($_FILES['file'] as $file) {

    // echo $file['name'] . '<br>';
}
于 2012-09-30T16:26:07.883 回答
0

您使用多个文件,您需要做这样的事情

$allowedExt  = array("jpg");
if (isset($_FILES['file'])) {
    foreach ( $_FILES['file']['tmp_name'] as $key => $file ) {
        if ($_FILES["file"]["error"][$key] == UPLOAD_ERR_OK) {
            $fileName = $_FILES['file']['name'][$key];
            $fileSize = $_FILES['file']['size'][$key];
            $fileTemp = $_FILES['file']['tmp_name'][$key];
            $fileType = $_FILES["file"]["type"][$key];
            $fileExt = pathinfo($fileName, PATHINFO_EXTENSION);
            $fileExt = strtolower($fileExt);

            if(!in_array($fileExt, $allowedExt))
            {
                // extention not supported ;
                continue;
            }

            // do your magic



        } else {
            // Somethign bad happend 
        }
    }
}
于 2012-09-30T16:33:14.133 回答