这是我最终得到的解决方案。
data-url
首先,我在文件上传器附加到的标签中添加了 URL 参数input
(它应该指向 jquery 文件上传子文件server/php/
夹,其中包含一个index.php
文件):
<input type="file" name="files[]" data-url="/jquery-file-upload/server/php/?type=a">
然后,我在文件中使用了指向的SWITCH
语句:index.php
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”是根路径,“upload_url”是公共路径。
另请注意:正如您在我的示例中看到的那样,我还使用此方法根据条件确定允许哪些文件类型。
可能有一种通过文件上传器 API/Options 执行此操作的内置方法,但文档对您实际可以做什么非常模糊。