2013-02-07 14 views
0

當我提交表單時,圖像文件不會發送到他的目錄。其中的其他數據已成功插入。我看了幾個教程,並且我知道我不使用傳統方式,但我仍然期望它能夠工作,任何人都可以請看一下嗎?表單文件輸入(圖像)不會上傳到目標目標

function addData($name, $price, $description, $files) 
      { 

          if(!empty($name) || !empty($price) || !empty($description)) 
          { 
            if($sql = $this->db->prepare("SELECT * FROM products WHERE name= ? LIMIT 1")) 
            { 
             $sql->bind_param('s', $name); 
             $sql->execute(); 
             $sql->store_result(); 
             $sql->fetch(); 
             $numrows = $sql->num_rows; 
             print_r($numrows); 
            } 
            else 
            { 
             echo "something is wrong"; 
            } 
            if($numrows>0) 
            { 
               echo 'duplicate, go to <a href="index.php?res=resources&adm=admin&page=inventory.php">same page</a>'; 
            } 
            else 
            { 
             if($insert = $this->db->prepare("INSERT INTO products (name, price, description) VALUES(?, ?, ?)")) 
             { 

                $insert->bind_param('sds', $name, $price, $description); 
                $insert->execute(); 
             } 
             else 
             { 
              echo "failed to prepare"; 
             } 

             //The uploaden image is sent to temp map 
             if(is_uploaded_file($files['image']['tmp_name'])) 
             { 
              $valid_types = array(
               "image/gif", 
               "image/png", 
               "image/jpeg", 
               "image/pjpeg", 
              ); 

               if (in_array($files["file"]["type"], $valid_types)) 
               { 
                $uploaddir = "./webshop/public/img/content/"; 
                if(move_uploaded_file($files['image']['tmp_name'], $uploaddir."/".$files['image']['name'])); 
               } 

               //Shows where its stored 
                echo "Stored in: " . 'C:/xampp/htdocs/webshop/public/img/content/' . $files["file"]["name"]; 


            } 
            else 
            { 
                echo "didnt inserted the damn thing!"; 
            } 

           } 
           print_r($files); 
        } 
       } 
+0

你得到了什麼錯誤?或者你的哪些測試失敗了? – Pitchinnate

回答

0

你似乎缺少在move_uploaded_file

move_uploaded_file($files['image']['tmp_name'], $uploaddir."/".$files['image']['name']); 

['name']方面也注意到."/". $ uploaddir和$文件

在你的代碼$uploaddir/$files['image']之間增加了,你的目標是增加尾部的斜線和文件的名稱,但是,您沒有使用語法來連接字符串。因此,您必須在變量之間添加.。您可以添加後斜槓

$uploaddir = "./webshop/public/img/content/"; 

,那麼你可以做

move_uploaded_file($files['image']['tmp_name'], $uploaddir.$files['image']['name']); 

UPDATE

您插入和處理文件時使用If..elseif..。按照你的邏輯,你準備了這個陳述,如果失敗了,你檢查這個文件。它永遠不會做這兩件事。您需要刪除elseif並執行兩次單獨的檢查。

if($insert = ..){} 
else{echo "failed to prepare";} 
if(is_uploaded_file()){} 

您可能希望首先檢查上傳的文件,如果沒有其他錯誤,請將其移動到數據庫中。然後,如果數據庫插入失敗,您可以取消鏈接(刪除)文件,因爲出錯了。

+0

你已經告訴我了,但圖像仍然沒有發送到內容目錄,它可能是什麼?在此先感謝 – user2031928

+0

嘗試添加'error_reporting(E_ALL);'和'ini_set('display_errors','1');'到頂部並查看是否顯示任何錯誤。另外,還有什麼echo'd('echo「存儲在:...'display?)。最後,確保你有權寫入目錄。 – UnholyRanger

+0

如果他們都已經在我的索引頁面中,沒有錯誤。不要收到回聲「存儲在:...顯示?或者 – user2031928

相關問題