這是我終於結束的解決方案。
首先,我添加URL參數的data-url
,該文件上傳連接到input
標籤(其應指向jQuery的文件上傳server/php/
子文件夾,其中包含一個index.php
文件):
<input type="file" name="files[]" data-url="/jquery-file-upload/server/php/?type=a">
然後我在index.php
文件中使用一個SWITCH
聲明中表示,data-url
點:
switch ($_GET["type"]) {
case "a":
$upload_dir = '/custom/folder/here/';
$upload_url = '/custom/folder/here';
$allowed_exts = '/\.(jpg|jpeg|gif|png)$/i';
break;
case "b":
// you get the idea
break;
default:
$upload_dir = dirname($_SERVER['SCRIPT_FILENAME']).'/files/';
$allowed_exts = '/.+$/i';
break;
}
最後,在upload.class.php
文件我修改取決於哪個值我想用SWITCH
來定製相應的線路:
function __construct($options = null, $initialize = true) {
$this->options = array(
'script_url' => $this->get_full_url().'/',
'upload_dir' => $GLOBALS["upload_dir"],
'upload_url' => $GLOBALS["upload_url"],
'user_dirs' => false,
'mkdir_mode' => 0755,
'param_name' => 'files',
'delete_type' => 'DELETE',
'access_control_allow_origin' => '*',
'download_via_php' => false,
'inline_file_types' => '/\.(gif|jpe?g|png)$/i',
'accept_file_types' => $GLOBALS["allowed_exts"],
...etc
我在SWITCH
定義的變量在這裏作爲`$ GLOBALS [「varname的」],使他們能夠從班內使用。
我希望這能夠幫助某人。每個人的情況都會有所不同,所以我不建議完全複製和粘貼此代碼。我只是想說明基本的想法。
注意:「upload_dir」是ROOT路徑,「upload_url」是公共路徑。
另請注意:正如您在我的示例中所看到的,我還使用此方法根據條件確定允許哪些文件類型。
通過文件上傳器API/Options可能有一種內置的方法來完成此操作,但文檔對於您實際上可以做什麼非常模糊。
你好感謝你的貢獻。我有同樣的問題,我的意思是:我不知道我怎麼能得到?type = a的index.php。我想有一個基本頁面,詢問您要在哪個文件夾中上傳圖片...當您通過點擊鏈接選擇哪個文件夾...我需要對上傳者說,以這種方式獲取參數在index.php我可以切換...但我無法獲得參數的值?type ... – 2014-04-17 22:07:28