Jquery文件上载小组件的动态上载文件夹

时间:2012-09-13 01:17:38

标签: php jquery json file upload

我的问题是关于这一点 - 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具有正确的值,我通过在测试中回复它们来检查。

2 个答案:

答案 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。使用它时要小心,因为这个技巧可能会降低应用程序的安全性,因为目录名存储在客户端