2014-10-29 82 views
0

我想上傳一個圖像到一個目錄,並將其文件路徑和其他數據一起發佈到一個表中。提交後回聲錯誤上傳文件,但我不知道它掛起的地方。我相信這可能與我的結果變量有關,但我不知道爲什麼。感謝您的幫助。上傳文件PHP與SQL文件路徑

<!-- Updated --> 
 
    <?PHP 
 
    error_reporting(E_ALL); ini_set('display_errors', 1); 
 
    $hostname = "localhost:3306"; 
 
    $db_user = "root"; 
 
    $db_password = "admin"; 
 
    $database = "smlc"; 
 
    $db_table = "program"; 
 
    $db = mysqli_connect($hostname, $db_user, $db_password); 
 
      mysqli_select_db($db, $database); 
 
    \t 
 
    $uploadDir=dirname(__FILE__)."/images/uploaded/programs/"; 
 

 
    if(isset($_POST['Submit'])) 
 
    { 
 
    $program_name = $_POST['program_name']; 
 
    $program_description = $_POST['program_description']; 
 
    $fileName = $_FILES['Photo']['name']; 
 
    $tmpName = $_FILES['Photo']['tmp_name']; 
 
    $fileSize = $_FILES['Photo']['size']; 
 
    $fileType = $_FILES['Photo']['type']; 
 
    $filePath = $uploadDir . $fileName; 
 
    $result = move_uploaded_file($tmpName,$filePath); 
 
    if (!$result) { 
 
    echo "Error uploading file"; 
 
    exit; 
 
    } 
 
    if(!get_magic_quotes_gpc()) 
 
    { 
 
    $fileName = addslashes($fileName); 
 
    $filePath = addslashes($filePath); 
 
    } 
 

 
    $sql_program = "INSERT INTO program (program_name, program_description,filepath) 
 
    VALUES ('$program_name', '$program_description','$filePath')"; 
 

 

 
    mysqli_query($sql_program) or die('Error, query failed '); 
 
    } 
 
    ?>


          
  
<!--image_programs.php--> 
 
    
 

 
     <?PHP 
 
     $hostname = "localhost"; 
 
     $db_user = "*"; 
 
     $db_password = "*"; 
 
     $database = "smlc"; 
 
     $db_table = "program"; 
 
     $db = mysql_connect($hostname, $db_user, $db_password); 
 
       mysql_select_db($database); 
 
     \t 
 
     $uploadDir = 'images/Uploaded/programs/'; 
 
    
 
     if(isset($_POST['Submit'])) 
 
     { 
 
     $program_name = $_POST['program_name']; 
 
     $program_description = $_POST['program_description']; 
 
     $fileName = $_FILES['Photo']['name']; 
 
     $tmpName = $_FILES['Photo']['tmp_name']; 
 
     $fileSize = $_FILES['Photo']['size']; 
 
     $fileType = $_FILES['Photo']['type']; 
 
     $filePath = $uploadDir . $fileName; 
 
     $result = move_uploaded_file($tmpName,$filePath); 
 
     if (!$result) { 
 
     echo "Error uploading file"; 
 
     exit; 
 
     } 
 
     if(!get_magic_quotes_gpc()) 
 
     { 
 
     $fileName = addslashes($fileName); 
 
     $filePath = addslashes($filePath); 
 
     } 
 
    
 
     $sql_program = "INSERT INTO program (program_name, program_description,filepath) 
 
     VALUES ('$program_name', '$program_description','$filePath')"; 
 
    
 
    
 
     mysql_query($sql_program,$db) or die('Error, query failed '); 
 
     } 
 
     ?>
<!-- Image Form --> 
 

 
<form name="Image" enctype="multipart/form-data" action="image_programs.php" method="POST"> 
 
       <tr> 
 
        <td> 
 
        <input type="File" name="Photo" size="2000000" accept="image/gif, image/jpeg, image/x-ms-bmp, image/x-png" size="26"></td> 
 
       </tr> 
 
       
 
       <tr> 
 
        <td width="100">Program Name</td> 
 
        <td><input class="commentarea" name="program_name" type="text" id="program_name"></td> 
 
       </tr> 
 
       
 
       <tr> 
 
        <td width="100">Program Description</td> 
 
        <td><input class="commentarea" name="program_description" type="text"  id="program_description"></td> 
 
       </tr> 
 
       
 
       <br/> 
 
       
 
       <tr> 
 
        <td> 
 
        <INPUT type="Submit" class="button" name="Submit" value="Submit"> 
 
        </td> 
 
       </tr>   
 
    </form>
+0

在打開'<?php'標記後立即在文件頂部添加錯誤報告 'error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否產生任何東西。還有'或者(mysql_error())'去''mysql_query()'。 – 2014-10-29 19:38:16

+0

這些是返回的結果:警告:mysqli_select_db()期望恰好2個參數,第1行在C:\ xampp \ htdocs \ SMLC \ includes \ image_programs.php中給出 警告:move_uploaded_file(.../smlc/images /Uploaded/programs/pew.jpg):無法打開流:沒有這樣的文件或目錄在C:\ xampp \ htdocs \ SMLC \包括\ image_programs.php 23行 警告:move_uploaded_file():無法移動' C:\ xampp \ tmp \ php4A35.tmp'到第23行的'.../smlc/images/Uploaded/programs/pew.jpg'在第23行包含\ image_programs.php 錯誤上傳文件 – 2014-10-29 19:46:51

+0

'mysql_select_db($ database,$ db);'這將修復第一個錯誤。 '$ uploadDir ='images/Uploaded/programs /';'你的錯誤是'無法移動'C:\ xampp \ tmp \ php4A35.tmp'到'.../smlc/images/Uploaded/programs/pew。 jpg'不是相同的文件夾。另外,似乎有3個點在那裏。 – 2014-10-29 19:47:33

回答

1

試試這個

$uploadDir=dirname(__FILE__)."/images/Uploaded/programs/"; 

和圖像文件夾應該是在當前文件位於
上傳並上傳同一文件夾不是相同的名稱取決於服務器。
因此,請注意您的文件夾名稱。

+0

仍然是一樣的錯誤... 警告:mysql_query()期望參數2是資源,在第38行C:\ xampp \ htdocs \ SMLC \ image_programs.php中給出的對象 警告:mysql_error()期望參數1到是資源,在第38行C:\ xampp \ htdocs \ SMLC \ image_programs.php中給出的字符串 – 2014-10-29 20:11:01

+0

我實際上已經將文件夾名稱更改爲小寫以保持連續性......儘管如此,謝謝 – 2014-10-29 20:13:12

+0

看起來您的上傳問題fixed.try使用此mysql_query($ sql_program)而不是mysql_query($ sql_program,$ db) – 2014-10-29 20:28:08