2017-05-10 48 views
0
//Add this product into database now 

$sql = "INSERT INTO products 
       (product_name,price,details,category, 
       subcategory,date_added) 
     VALUES ('$product_name','$price','$details','$category', 
       '$subcategory',now())"; 
     //now() will add todays date in database 

if($result = mysqli_query($conn,$sql)){ 
    $pid = mysqli_insert_id($conn);//Generated an auto-generated id 

    //Place image in the folder 

    $newname = "$pid.jpg"; 
    move_uploaded_file($_FILES['fileField']['temp_name'],"../inventory_images/$newname");//$_FILES is a global variable. 
    header("location: inventory_list.php");//if you will not include this line then it will add the same product again if you refresh the page. 
    exit(); 
} 
else{ 
    echo"Data didn't inserted in the database"; 
} 

每當我運行代碼它工作正常,數據被插入,但是當我檢查我上傳的圖像的目錄,沒有什麼夾。請儘早幫助我。我試圖上傳圖像在目錄中使用PHP

+1

是否打開了錯誤報告? – MonkeyZeus

+0

確保目錄是可寫的。 Chmod – Akintunde007

+1

仔細檢查您是否正試圖上傳到正確的文件夾。相對路徑,特別是用'../',總是讓我感到緊張:p –

回答

1

你的問題是,你正在使用的$ _FILES數組中不存在的次數在move_uploaded_file()功能

move_uploaded_file($_FILES['fileField']['temp_name'],"../inventory_images/$newname"); 
// - - - - - - - - - - - - -- - - - - - -^^^^^^^^^ 

應該

move_uploaded_file($_FILES['fileField']['tmp_name'],"../inventory_images/$newname"); 

參考

http://php.net/manual/en/features.file-upload.post-method.php

這確實應該產生一個錯誤。在測試時,如果您要在實時服務器上進行測試,則應始終手動打開錯誤報告。

ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);添加到腳本的頂部。這會強制任何mysqli_錯誤到 生成您可以在瀏覽器上看到的異常,並且其他錯誤也會在瀏覽器中顯示。

+0

很好的結果,令人驚訝的是這個人對錯誤報告有多麼有用;和99%的PHP標記的問題在這個網站上... ... – MonkeyZeus

+0

@MonkeyZeus是的,我剛剛添加了一個關於這個建議 – RiggsFolly