2016-03-03 136 views
1

我有一個問題搞清楚。如何實現cookie處理上傳的圖片名稱?如何在個人資料圖片上傳中實現cookie?

我有2個文件:

的index.php(在這裏你可以設置個人資料照片)。

<form action="setPicture.php" method="post" enctype="multipart/form-data" > 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 

setPicture.php

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 

如果用戶上傳的資料照片將被保存在數據/ IMG公司/管理,我必須使用源將其保存裏面的cookie,然後重定向到主頁面index.php與配置文件圖片設置。

有人可以幫助我理解實施嗎?

下面是我工作的完整代碼。 https://jsfiddle.net/u5c4sz6u/1/

+0

首先你爲什麼要在cookie中保存源代碼?您可以使用該會話 –

+0

在您的代碼中,您尚未上傳該文件。文件上傳代碼在哪裏? –

+0

我沒有ideea如何使用cookie,這就是爲什麼im問一些幫助:),如果我嘗試上傳圖片,它會上傳它在數據/ img/admin PS:我去了餅乾教程,但我的頭不能理解它 –

回答

2

餅乾通常用於記錄您希望在發生一些衝突以後要進入迷你臨時數據(例如:網頁交互)。在你的情況下,你想保存的cookie的值作爲路徑成功上傳的圖像。

在簡單的情況下,你可以只:

  • 如果圖像已被上傳成功地,取文件的路徑,然後將其保存到一個cookie:

    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
        echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    
        $full_path =$target_dir.($_FILES["fileToUpload"]["name"]); 
        // set the cookie 
    setcookie("mypathvalueissaved",$full_path, time()+3600); /* expire in 1 hour */ 
    } 
    

現在創建一個名爲"mypathvalueissaved"的新cookie,其值爲$full_path這是目標路徑的值 + 文件的名稱(包含擴展名)。

  • 當你要訪問的cookie只是指cookie的名字對後世(即使是在不同的頁面,它會被識別,因爲$ _COOKIE是與你不假設一個全局數組t設置特定域的cookie)與$_COOKIE["mypathvalueissaved"]。 就像上傳成功時一樣,設置cookie然後重定向並最終將cookie的值設置爲<img src= >的值,如<img src="<?php echo $_COOKIE['mypathvalueissaved'];?>">

    // if the cookie with a "mypathvalueissaved" name was successfully created before 
    if (isset($_COOKIE["mypathvalueissaved"])){ 
    
        } 
    

這只是一個短暫的解釋,可以提高&自行擴大其使用。

+0

是的,這是我想要的,謝謝,順便說一下,如果我想default.png img,我應該寫在src裏面嗎? 我這樣做之前,我寫了你的代碼 '',無論如何,我會研究你的代碼和閱讀更多的理解。再次感謝:) –

+0

說實話,它不是很適合在cookie中實現圖像的路徑保存:),通常它保存在db或(幾乎)* .txt *中。因爲像這樣想,Cookie總是會在* index.php * *之前檢查*(用戶尚未上傳圖像)或*重定向後(用戶上傳圖像),所以例如當該cookie在一小時後過期,由於前一個cookie的信息已被破壞,用戶將被迫再次上傳該圖像,但如果它只是一個*臨時*操作,那就不是問題。無論如何,不​​客氣! :) –

相關問題