0

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

4

2 回答 2

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 File Uploader 初始化

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

d-在加载现有文件的js中更改get url

$.getJSON(this.action

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

e- 在 html 模板中更改删除按钮的 data-url

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

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

PS 使用时要小心,因为此技巧可能会降低应用程序的安全性,因为目录名称存储在客户端

于 2013-08-12T13:02:05.037 回答
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 .'/',
    ....
  }
}
于 2012-09-13T01:41:35.623 回答