2012-09-13 52 views
0

我的問題是關於這個 - jQuery File Upload它很棒,禁止缺少支持文檔和回答最常見的問題似乎!jquery文件上傳控件的動態上傳文件夾

我們如何動態地在upload.class.php中定義上傳文件夾?

充其量,我發現這個問題的答案是'黑暗',所以明確的答案將是輝煌的。

到目前爲止,我有這樣的:

class UploadHandler 
{ 

public $MY_PATH = "rootFolder/subFolder/anotherSubFolder"; 

protected $options; 
    function __construct($options=null) { 


     $this->options = array( 
      'script_url' => $this->getFullUrl().'/', 
      'upload_dir' => $this->MY_PATH .'/', 
      'upload_url' => $this->getFullUrl().'/'.$this->MY_PATH .'/', 

這個工作,但是當我嘗試使用$variables定義$MY_PATH的問題開始:

public $MY_PATH = $rootFolder.'/'.$subFolder.'/'$anotherSubFolder; 

爲什麼這個不行...我只是得到錯誤(毫無疑問是一個明顯的理由給某人!)。

那麼,如何按照我所描述的方式定義$MY_PATH,然後根據需要使用UploadHandler類中的結果來允許上傳文件夾是動態的?

注意:我確定我的$vars具有正確的值,我通過在我的測試中迴應它們進行檢查。

+0

什麼錯誤,哪個回顯。從[財產聲明](http://www.php.net/manual/en/language.oop5.properties.php)的文檔。聲明變量屬性是不行的。 – dbf

回答

0

嘆息 ..好吧,試試

class UploadHandler { 

    public $MY_PATH; 

    protected $options; function __construct($options=null) { 
    // make sure $rootFolder or any variable is known to the constructor scope, 
    // use globals etc. 
    $this->MY_PATCH = $rootFolder.'/'.$subFolder.'/'$anotherSubFolder; 
    $this->options = array( 
    'script_url' => $this->getFullUrl().'/', 
    'upload_dir' => $this->MY_PATH .'/', 
    'upload_url' => $this->getFullUrl().'/'.$this->MY_PATH .'/', 
    .... 
    } 
} 
+0

謝謝你的回答,不幸的是它不起作用。我收到了一個錯誤「未定義的變量」以及其他因爲我認爲的結果。我試圖利用的變量在文檔中出現的數據是正確的,這些變量是我在檢查結果時迴應出來的,我在文檔的Uploader類之上做了這些變量。因此,如你所說,它必須與將變量聲明爲屬性有關。我會閱讀,就像我說的,我是一個新手。 – user1667105

+0

請參閱我的評論'/ /確保$ rootFolder或任何變量已知的構造函數範圍,使用全局等' – dbf

+0

問題通過其他路線解決。 - 步驟1:在images目錄下創建兩個文件,名稱爲index.php和upload.class.php。第2步:內部文件,我用require('original-upload.class.php');並要求('original-index.php');第3步:在上傳表單中,我將動作屬性設置爲我提到的根文件夾中的index.php,一切都很好!這樣,當我不得不隨時更新插件時,使用我係統中插件的所有動態創建的文件夾都可以通過更新兩個文件來升級。此方法也無需在設置圖像上載路徑時使用變量。 – user1667105

0

這種方式爲我工作:

1-在upload.class.php變化:

$a = $_REQUEST["path"]; 

    $this->options = array(
     'script_url' => $this->getFullUrl().'/', 
     'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/'.$a.'/', 
     'upload_url' => $this->getFullUrl().'/'.$a.'/', 

使您通過請求獲取目錄名稱

2-然後有三個地方你應該放置你的路徑變量,這樣你就可以將它發佈到upload.class.php,只要你請求它。

A-在窗體(默認使用id = 「文件上傳」)將名爲路徑

<input type="hidden" name="path" value="whatever_you_want_the_path" id="fileuploadpth"> 

一個隱藏的輸入B-做出的全局JavaScript變量

var mypath = "whatever_you_want_the_path" 

C-添加到jQuery的文件上傳器初始化

$('#fileupload').fileupload({'formData' : { 'path' : mypath }}); 

d-在加載現有文件的js中,更改get url

$.getJSON(this.action 

$.getJSON(this.action+'index.php?path='+ path 

在HTML變化數據網址的模板刪除按鈕E-

data-url="{%=file.delete_url%} 

data-url="{%=file.delete_url%}&path={%=path%}"> 

附:使用時要小心,因爲這個技巧可能會降低應用程序的安全性,因爲目錄名稱存儲在客戶端