2017-03-16 5 views
-2

관리자 패널이 내장되어 있으므로 이미지를 업로드하고 이미지 파일의 이름을 이미지 파일의 이름을 행의 수만큼 생성 된 숫자 ID로 변경하고 싶습니다. 데이터베이스에 이미 있습니다. 그런 다음 방문객을 위해 갤러리에 전시하십시오. 나는 며칠 동안 인터넷을 둘러 보았고, 다른 스크립트를 시도하고, 믹싱하고 매칭했지만, 아무 것도 작동하지 않는 것 같습니다. 이것은 PHP btw입니다. 나는 move_uploaded_file() 함수가 문제임을 믿는다. 누구든지 더 좋은 방법을 생각하거나 내 코드에서 오류를 발견하면 환상적 일 것입니다. 이 웹 사이트는 고객을위한 것이므로 신속하게 답변 해 주시면 더욱 감사하겠습니다. 고마워요사용자가 웹 사이트에 이미지를 업로드 한 다음 갤러리에 표시합니다.

require_once("../php/connect.php"); 

function GetImageExtension($imagetype){ 
    if(empty($imagetype)) return false; 
    switch($imagetype){ 
     case 'image/png': return '.png'; 
     default: return false; 
    } 
} 

if (!empty($_FILES['fileToUpload']['name'])){ 
    $file_name = $_FILES['fileToUpload']['name']; 
    $temp_name = $_FILES['fileToUpload']['tmp_name']; 
    $imgtype = $_FILES['fileToUpload']['type']; 
    $ext = GetImageExtension($imgtype); 

    $query1 = "SELECT COUNT(*) FROM gal"; 
    $count = mysqli_query($dbc, $query1); 

    $imagename = $count + 0; 
    $newfilename = "$imagename" . ".png"; 

    //Debug 
    echo "hello <br>"; 
    echo "$newfilename"; 
    //End Debug 

    $folder = "/uploads/"; 
    if(move_uploaded_file($_FILES['image']['tmp_name'], "$folder" . $_FILES['image']['$newfilename'])){ 
     $query2 = "INSERT INTO `nocas_19164639_admin`.`gal` (`id`, `name`, `active`) VALUES (NULL, '$newfilename', '1')"; 
     mysqli_query($dbc, $query2); 
    }else{ 
     exit("Error while uploading file..."); 
    } 
} 

답변

0

파일의 이름을 바꾸는 이유를 물어볼 수 있습니까? 간단한 작업을 매우 복잡하게 만듭니다. 이미지를 데이터베이스에 저장하면 안됩니다. 사이트의 디렉토리에 이미지를 업로드하고 해당 이름을 db에 저장해야합니다.

나는 이름을 숫자로 변경하는 모든 이유를 이해하지 못한다. 단지 모든 것을 엉망으로 만든다.

이렇게하면됩니다.

내가 mysqli 쿼리에 대한 기능을 만들었습니다
defined("UPLOAD_DIRECTORY") ? null : define("UPLOAD_DIRECTORY", __DIR__ . DS . "uploads"); 

그냥 그래서 난 모든 시간을 입력 할 필요 없다 .. 설정 파일의 디렉토리 경로를 만듭니다.

function query($sql) { 

global $connection; 

return mysqli_query($connection, $sql); 
} 

그런 다음 쿼리에서 오류를 확인하는 확인 쿼리가 있습니다.

function confirm($result) { 

global $connection; 

if(!$result) { 

    die("QUERY FAILED" . mysqli_error($connection)); 
} 
} 

다음과 같이 db에 삽입하면됩니다.

$product_image = escape_string($_FILES['file']['name']); 
    $image_temp_location = $_FILES['file']['tmp_name']; 

    move_uploaded_file($image_temp_location, UPLOAD_DIRECTORY . DS . $product_image); 

    $query = query("INSERT INTO products(product_image) VALUES('{$product_image}')"); 
+0

그게 내가하려는 것입니다. 번호는 이름으로되어 있고 이름이 같은 ID로 데이터베이스에 보내집니다. – Wilobate

+0

이름을 숫자로 변경하는 모든 이유를 이해하지는 못합니다. 모든 것을 엉망으로 만들고 있습니다. 이렇게하면됩니다. –

+0

hmmm, true, 왜냐하면 내가 대신 표시 할 때 참조 할 수있는 ID가 있기 때문입니다. 어쩌면 그냥 프로세스를 overthought – Wilobate