2011-05-16 42 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「前

文件已成功上傳!請再試!

」;'。但是,這段代碼非常不安全。通過「這個代碼」我指的是整個腳本。 – 2011-05-16 01:38:41

回答

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文檔有一個連接和運行查詢的好例子。