2015-02-08 47 views
-2

我有這種在php文件上傳錯誤。它讓我很難找到答案。當我檢索某個文件上傳的變量時,我無法檢索它。繼承我的代碼。我有這種錯誤在PHP

//this is the php code for validating all post and pass it to db 
<?php 
$id = $_SESSION['id']; 
$pic = ''; 
$message = ''; 

if(isset($_POST['add'])) 
{ 
    include_once('database.php'); 
    _addstocks($_POST); 
    $message = 'New Stocks Record Added'; 
    echo $_POST['ipic']; 

} 
function post_value($key) 
{ 
    if(isset($_POST[$key])) 
     echo htmlentities($_POST[$key]); 
} 

?> 

//這是我的形式或使數據不能傳遞到分貝

<form class="modal-content container" style="width:445;" method="post" enctype="multipart/form-data" > 
     <br> 
       <label>Item Code</label><br> 
       <input type="text" name="icode" class="form-control" placeholder="Item Code" required autofocus><br> 
       <label>Item Name</label><br> 
       <input type="text" name="iname" class="form-control" placeholder="Item Name" required><br> 
       <label>Item Description</label><br> 
       <input type="text" name="idesc" class="form-control" placeholder="Item Description" required><br> 

       <!--<label>Item Type</label><br>--> 
       <input type="text" class="hidden" name="itype" value="perishable"> 
       <label>Item Price</label><br> 
       <input type="text" name="iprice" placeholder="Item Price" class="form-control" required><br> 
       <label>Item Quantity</label><br> 
       <input type="text" name="iqty" placeholder="Item Quantity" class="form-control" required><br> 
       <input type="text" class="hidden" name="estabno" value="<?php echo "01";?>"> 
       <div enctype="multipart/form-data"> 
        <label>Upload Display Picture</label><br> 
        <label for="fileToUpload"><img src="photos/<?php echo $pic;?>" style="width:100px;height:100px"></label> 
        <input class=""type="file" name="ipic" id="fileToUpload"><br> 
       </div> 
       <input type="text" class="hidden" name="istat" value="available"> 

     <?php echo htmlentities($message);?> 
     <input type="submit" name="add" value="Create" class="btn btn-success" style="float:right;" > 
     <br><br><br> 
    </form> 

和這個數據庫,用於將股

function _addstocks($stocks) 
{ 
    $sql = "INSERT INTO inventory 
    (
     itemcode, 
     itemname, 
     itemdesc, 
     itemcateg, 
     itemprice, 
     itempic, 
     estabno, 
     itemqty, 
     status 

    ) VALUES (?,?,?,?,?,?,?,?,?)"; 

    $db = database(); 
    $st = $db->prepare($sql); 
    $st->execute(array(
     $stocks['icode'], 
     $stocks['iname'], 
     $stocks['idesc'], 
     $stocks['itype'], 
     $stocks['iprice'], 
     $stocks['ipic'], 
     $stocks['estabno'], 
     $stocks['iqty'], 
     $stocks['istat']) 

    ); 
    $db = null; 
} 

,這是錯誤我得到。 http://i.imgur.com/7M7l18j.png

+1

什麼樣的錯誤?順便說一句,'['ipic']'是一個文件。 http://php.net/manual/en/function.error-reporting.php – 2015-02-08 03:29:25

回答

1

,你需要通過$ _FILES [ 「IPIC」] [ 「tmp_name的值」]來訪問它們 參考:http://www.w3schools.com/php/php_file_upload.asp

基本上,一個文件是不是請求$ _ POST/$ _ GET類型。它是$ _FILES的一部分。該頁面應該會向你展示一些很好的用法。

變化:

echo $_POST['ipic']; 

要:

echo $_FILES["ipic"]["tmp_name"] 

訪問該文件,但這樣只會讓你的路徑,這是一個臨時路徑。您仍然需要移動的文件該文件或處理它。注意,在你的數據庫中試圖直接插入它..

你將要使用該鏈接中的「move_uploaded_file」將文件移動到文件夾,然後將URL /路徑的名稱存儲在數據庫,以便您可以鏈接到它。

也可以存儲某些項目,如base64版本的文件,但取決於您的整體設計。

+0

如何在我的客戶添加是我可以在數據庫中添加文件,而在我添加股票我不能? – 2015-02-08 03:37:00

+0

那麼我們只能回答我們在帖子中看到的內容,但是如果按照我上面寫的內容去做。這將解決您的問題。 – Mayhem 2015-02-08 03:38:37

+0

現在我添加了你想添加的內容,但另一個問題「ipic」是undefined我該如何解決它? – 2015-02-08 04:00:23