我注意到你和我几乎同时在 github 上发布了一个 blueimp 上传问题。我不确定我是否有完整的答案给你,但让我给你到目前为止我发现的东西。也许它会有所帮助:
我一直在寻找一种方法来过滤用户从经过身份验证的系统中上传的文件。我发布了 github.com/blueimp/jQuery-File-Upload/issues/1578 。插件作者建议我在服务器端进行过滤。我找到了 github.com/blueimp/jQuery-File-Upload/issues/1149,它解释了如何在服务器端进行过滤。我已经这样做了,它可以上传。我现在进行了设置,每个用户在上传文件夹中都有一个子文件夹,名为他们的唯一 ID 号,其中包含他们的图像。所以无论如何,这是一种设置上传路径的动态方式。也许你可以使用它。
我目前的问题是,虽然我可以确认图像已上传,但它们在下载表中不可见。请参阅 github.com/blueimp/jQuery-File-Upload/issues/1587。
我为解决此问题所做的一次尝试包括尝试将选项传递给构造函数:
这是我在 blueimp index.php 文件中的代码:
$customer_path_files = dirname($_SERVER['SCRIPT_FILENAME']) . DIRECTORY_SEPARATOR. 'files' . DIRECTORY_SEPARATOR . $uid . DIRECTORY_SEPARATOR;
if (!file_exists($customer_path_files)) {
@mkdir($customer_path_files);
}
$customer_path_thumbnails = dirname($_SERVER['SCRIPT_FILENAME']) . DIRECTORY_SEPARATOR . 'thumbnails' . DIRECTORY_SEPARATOR . $uid . DIRECTORY_SEPARATOR;
if (!file_exists($customer_path_thumbnails)) {
@mkdir($customer_path_thumbnails);
}
$options=array(
'upload_dir' => $customer_path_files,
'upload_url' => base_url().'blueimp/server/php/files/'.$uid.'/',
'thumbnail' => array(
'upload_dir' => $customer_path_thumbnails,
'upload_url' => base_url().'blueimp/server/php/thumbnails/'.$uid.'/',
'max_width' => 80,
'max_height' => 80
)
);
require('upload.class.php');
$upload_handler = new uploadHandler($options);
希望这里有帮助,
附录:
我希望确实如此。顺便说一句,我阅读了Jquery 文件上传插件:动态更改上传路径?. 这正是我想要做的。如果您也是,我只想说我还尝试将隐藏字段中的会话变量(在我的情况下为 codeigniter 变体( $this->session->userdata('uid') )传递给插件的索引。 php 文件,但就像在帖子中一样,它在 index.php 中不存在(我认为是因为,上传按钮不是为重新填充或删除而推送的)。这是我第一次使用 ajax,但我认为会话 ID 必须以某种方式通过 Json 发送。我试图弄清楚这一点。听起来这就是 Chris G 所做的。如果有任何帮助,我已经发布了以下问题以及更多详细信息:
http://www.dynamicdrive.com/forums/showthread.php?p=279824