0

このコードを書きましたが、問題があります。誰かが送信を押したときにアップロードされたファイルがないかどうかを確認できません。また、許可された拡張子(たとえば、「。jpg」)を指定できません。「foreach」でこれを行うにはどうすればよいですか。1つの画像だけをアップロードするときにこれを行うことができますが、このコードはマルチアップロード用であり、フォームで配列を使用していることに気付いた場合は。

<?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 に答える