我无法验证$ _POST [''];

时间:2012-09-30 16:10:46

标签: php post

我写了这段代码,但我遇到了问题。当有人点击提交时我无法验证是否没有上传文件,我无法具体说明允许的延期,例如“.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>

2 个答案:

答案 0 :(得分:0)

从来没有这样做,但可能就像

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

    // echo $file['name'] . '<br>';
}

答案 1 :(得分: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 
        }
    }
}