2011-05-16 2 views
0

양식을 작성하여 웹 사이트에 이미지를 업로드해야합니다 ... 아래 코드를 찾아 내 사이트에 추가하고 테스트했습니다. 잘 작동하는 것 같습니다. 문제는 데이터베이스에 쓰는 코드가 어디에도 없다는 것입니다 ... 단지 이미지를 폴더에 업로드하고 데이터베이스를 추적하지 않아도됩니다 ...... 나는 쓰는 것을 충분히 할 수있는 SQL을 알고 있습니다. 코드 ....하지만 실제 SQL 코드를 넣을 위치에 대해서는 너무 지식이 없습니다. ..... 이미지를 업로드하기 위해 GO 단추를 클릭하면 사용자가이 페이지를 벗어납니다 ... 그래서 SQL 실행? ... 어떻게 SQL 코드를 추가하려면이 수정할 수데이터베이스에 쓰려면이 코드를 수정하는 데 도움이되도록

어떤 아이디어?

코드가 ... 어떤 도움이 될 것입니다!

<?php 
//define a maxim size for the uploaded images in Kb 
define ("MAX_SIZE","500"); 

//This function reads the extension of the file. It is used to determine if the file is an image by checking the extension. 
function getExtension($str) { 
     $i = strrpos($str,"."); 
     if (!$i) { return ""; } 
     $l = strlen($str) - $i; 
     $ext = substr($str,$i+1,$l); 
     return $ext; 
} 

//This variable is used as a flag. The value is initialized with 0 (meaning no error found) 
//and it will be changed to 1 if an errro occures. 
//If the error occures the file will not be uploaded. 
$errors=0; 
//checks if the form has been submitted 
if(isset($_POST['Submit'])) 
{ 
    //reads the name of the file the user submitted for uploading 
    $image=$_FILES['image']['name']; 
    //if it is not empty 
    if ($image) 
    { 
    //get the original name of the file from the clients machine 
     $filename = stripslashes($_FILES['image']['name']); 
    //get the extension of the file in a lower case format 
     $extension = getExtension($filename); 
     $extension = strtolower($extension); 
    //if it is not a known extension, we will suppose it is an error and will not upload the file, 
    //otherwise we will do more tests 
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
     { 
     //print error message 
      echo '<h1>Unknown extension!</h1>'; 
      $errors=1; 
     } 
     else 
     { 
//get the size of the image in bytes 
//$_FILES['image']['tmp_name'] is the temporary filename of the file 
//in which the uploaded file was stored on the server 
$size=filesize($_FILES['image']['tmp_name']); 

//compare the size with the maxim size we defined and print error if bigger 
if ($size > MAX_SIZE*1024) 
{ 
    echo '<h1>You have exceeded the size limit!</h1>'; 
    $errors=1; 
} 

//we will give an unique name, for example the time in unix time format 
$image_name=time().'.'.$extension; 
//the new name will be containing the full path where will be stored (images folder) 
$newname="images/".$image_name; 
//we verify if the image has been uploaded, and print error instead 
$copied = copy($_FILES['image']['tmp_name'], $newname); 
if (!$copied) 
{ 
    echo '<h1>Copy unsuccessfull!</h1>'; 
    $errors=1; 
}}}} 

//If no errors registred, print the success message 
if(isset($_POST['Submit']) && !$errors) 
{ 
    echo "<h1>File Uploaded Successfully! Try again!</h1>"; 
} 

?> 

<!--next comes the form, you must set the enctype to "multipart/frm-data" and use an input type "file" --> 
<form name="newad" method="post" enctype="multipart/form-data" action=""> 
<table> 
    <tr><td><input type="file" name="image"></td></tr> 
    <tr><td><input name="Submit" type="submit" value="Upload image"></td></tr> 
</table> 
    </form> 
+0

'echo "앞에 코드 넣기

파일을 성공적으로 업로드했습니다. 다시 시도하십시오!

"; 그러나이 코드는 매우 안전하지 않습니다. "이 코드"는 전체 스크립트를 나타냅니다. –

답변

0

는 다음과 같은 블록 내에서 코드를 넣어 :

//If no errors registred, print the success message 
if(isset($_POST['Submit']) && !$errors) { 
    // do database stuff here... 
    echo "<h1>File Uploaded Successfully! Try again!</h1>"; 
} 

를 사용하면 업로드가 성공적으로 알고있는이 시점에서. 당신은 테이블 스키마 또는 SQL 풍미를 제공하지 않았습니다. 나는 MySQL을 가정 할 것이다. 어떤 경우에는 mysql_query()을 확인하십시오. PHP 문서에는 쿼리를 연결하고 실행하는 좋은 예가 있습니다.

관련 문제