2012-09-30 3 views
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> 
+0

같은 것을 할 필요가 여러 개의 파일로 작업

foreach ($_FILES['file'] as $file) { // echo $file['name'] . '<br>'; } 
Spudley

+0

스택 오버플로에 오신 것을 환영합니다! 새로운 코드를 작성하기 위해 mysql_ * 함수를 사용하지 마십시오. 더 이상 유지 관리되지 않으며 커뮤니티가 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. * [빨간색 상자] (http://goo.gl/GPmFd) *를 참조하십시오. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 어떤 것을 결정할 수 없다면 [이 기사] (http://goo.gl/3gqF9)가 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 가이드입니다] (http://goo.gl/vFWnC). –

+4

당신은 공백에 대한 강력한 혐오감을 가지고 있어야합니다 :) –

답변

0

처럼 propably는하지만 중요한 : PHP의` mysql_xxx()`함수는 쓸데없는 것으로 간주됩니다. PHP 매뉴얼 **은 강력하게 **이를 사용하지 않고 대신 mysqli_xxx() 함수 (또는 PDO 라이브러리)를 사용하도록 권장한다. mysqli_xx() 함수로의 전환은 매우 쉽다.
+0

사실 저는 저에게 당신의 도움에 감사 드리며 정말로 좋은 프로그래머입니다. 다시 한번 감사 드리며 저를 도우려는 모든 사람들에게 감사드립니다 – user1692901

+0

@ user1692901 당신은 환영합니다 .. 당신이 받아 들일 수 있습니다 : http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work 수락 방법에 대한 – Baba

+1

물론 내가 해냈어. – user1692901

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 
     } 
    } 
} 
관련 문제