2013-05-21 4 views
2

저는 수많은 도움이되는 메뉴와 주제를 겪었지만 여전히 문제가 있습니다. 간단히 업로드 된 이미지의 파일 경로를 MySQL 데이터베이스에 삽입하기 만하면됩니다. 변수에 이미지를 전달한 다음 쿼리를 사용하여 데이터베이스로 푸시했지만 작동하지 않습니다. 내 코드는 다음과 같습니다 양식은 상단에, PHP는 다음과 같습니다 :업로드 된 이미지의 파일 경로를 MySQL 데이터베이스에 저장합니다.

<html> 

<body> 

<h1>test</h1> 

<form action="insert.php" method="post" enctype="multipart/form-data"> 

Name <input type="text" name="name" /><br><br> 

Description <input type="text" name="desc" /><br><br> 

Price Low<input type="text" name="price_low" /><br><br> 

Price High <input type="text" name="price_high" /><br><br> 

<input type="hidden" name="MAX_FILE_SIZE" value="512000" /> 
3.Send this file: <input name="userfile" type="file" /> 
4.<input type="submit" value="Send File"/

<input type="submit" /> 

</form> 
a 

</body> 
</html> 




<html> 

<?php 
//upload image 
$uploaddir = ''; 
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']); 
//end of upload image 


if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
echo "File is valid, and was successfully uploaded.\n"; 
} else { 
echo "Upload failed"; 
} 



$con = mysql_connect("localhost","admintest","gen"); 

if (!$con) 

    { 

    die('Could not connect: ' . mysql_error()); 

    } 



mysql_select_db("test2", $con); 



$sql="INSERT INTO products (name, description, price_low, price_high) 

VALUES 

('$_POST[name]','$_POST[desc]','$_POST[price_low]','$_POST[price_high]')"; 



if (!mysql_query($sql,$con)) 

    { 

    die('Error: ' . mysql_error()); 

    } 

echo "1 record added"; 



mysql_close($con) 

?> 



</body> 

답변

0

Security issuesdeprecated extension 제외하고, 당신이해야 할 모든 데이터베이스에 파일 이름을 삽입합니다. 이를 위해 데이터베이스에 "파일 이름"필드를 추가 한 다음 그에 따라 삽입 쿼리를 조정합니다

INSERT INTO products (name, description, price_low, price_high, filename) 
       VALUES (:name, :desc, :price_low, :price_high, :filename) 

은 또한 당신의 $uploaddir 변수가 비어, 파일은 아마 지금 어디 저장되지 않습니다. 이 같은 시도, 제대로 파일을 이동하려면이 스크립트는 업로드 된 내용과 신뢰 가정

$uploaddir = '/path/where/you/can/save/'; 
$rawFilename = $_FILES['userfile']['name']; 
$extension = pathinfo($rawFilename, PATHINFO_EXTENSION); 

$uploadfile = $uploaddir . md5($rawFilename) . '.' . $extension; 

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
    echo "File is valid, and was successfully uploaded.\n"; 
} else { 
    echo "Upload failed"; 
} 

을 MD5 기능은 그냥 "살균은"(내가 그것을 호출 할 수 있습니다 할 경우 단지 빠르고 쉬운 방법입니다) 파일의 이름.

+0

파일을 루트 디렉토리에 업로드하고있었습니다. 나는 비추천 부호를 제거하는 것을 시도하고있다 그러나 과실에 걸렸다. –

관련 문제