我的问题是关于这一点 - jQuery File Upload这很棒,但是缺乏支持文档并回答了最常见的问题!
我们如何在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 :(得分: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 .'/',
....
}
}
答案 1 :(得分: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 =“fileupload”)放置一个名为path
的隐藏输入<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
e-在html的模板中更改数据 - 删除按钮的URL
data-url="{%=file.delete_url%}
到
data-url="{%=file.delete_url%}&path={%=path%}">
<强> P.S。使用它时要小心,因为这个技巧可能会降低应用程序的安全性,因为目录名存储在客户端