2013-12-16 103 views
0

我一直在試圖解決這個問題沒有成功的日子。jquery文件上傳更改會話ID

我使用blueimp jQuery的文件上傳和一切工作正常,但我需要保存我的取決於參數不同的文件夾的圖片通過URL發送類似/index.php?customer=160

<input type="hidden" name="customer" value="<?php print $_GET["id_cliente"];?>"> 

我創建該表單中的隱藏字段並將其保存在uploadhanndler.php中。

/files/'.$_POST['customer'].' 

,這裏一切正常的話,該文件將保存我想要的文件夾,但下一次我打開窗戶/index.php?customer=160,列出的文件是文件/文件夾不文件/ 160 /文件夾或我想列出的號碼。

我意識到我可以使用PHP用戶目錄,並將文件保存在來自session_id()的6afa0f7338b14aeed39eb7656f364b4e這樣的文件夾中,然後嘗試使用文件夾I的編號更改session_id()想在/index.php?customer=160

session_start(); 
session_id($_GET['customer']); 

但文件仍然beeing保存在文件夾6afa0f7338b14aeed39eb7656f364b4e和的開頭這樣,當我打印SESSION_ID()是160

PHP用戶目錄是實現我想要的一個好方法?我做錯了什麼?

在此先感謝和原諒我可憐的英語。

+0

我想你想存儲'CUSTOMER_ID '作爲會話變量,然後用它作爲文件夾名稱?那是對的嗎? – user1477388

+0

是的,這是正確的 – notforever

回答

0

下面的代碼將告訴您如何保存名爲customer_id的會話ID,然後將其用作文件夾名稱。如果您需要任何幫助,請告訴我。

// start (or restart) the session 
session_start(); 

// set the customer id session var 
$_SESSION['customer_id'] = // set this variable something that you've retrieved from the DB 

// create a folder if it doesn't already exist 
$dir = '/httpdocs/mySite/customers/' . $_SESSION['customer_id']; 
if (!file_exists($dir)) { 
    mkdir($dir, 0777, true); 
} 
0

即使它已經有一段時間了,因爲最後一個答案已經給了這個問題,我想就這個問題做一個小小的更新。從jQuery文件上傳庫5.17版開始,它就是對用戶目錄的支持。 在UploadHandler.php中,您可以找到'user_dirs'選項=> false。只需將其設置爲「true」,您將擁有基於session-id的用戶目錄。

如果你想擁有不是基於session-id的自己的用戶目錄,基於user-id(您自己定義的會話密鑰),您可以按照以下方式繼續:

在index.php文件中(如演示的jquery-file-upload庫中所述),您將 之後「require('UploadHandler.php');」

class CustomUploadHandler extends UploadHandler { 
    protected function get_user_id() { 
     @session_start(); 
     return $_SESSION[*<your own user id session key>*]; 
    } 
} 

依次爲:

$upload_handler = new CustomUploadHandler(array(
    'user_dirs' => true 
)); 

...和多數民衆贊成它...現在你有你自己的用戶目錄的上載檔案