【发布时间】:2012-08-18 20:10:33
【问题描述】:
我正在尝试将 codeigniter 和 Blueimp Jquery File Upload 插件用于我目前正在处理的项目:根据经过身份验证的用户过滤图像以进行显示。我需要能够根据包含插件的页面上的 GET 变量来更改上传的路径。我希望它为每个用户连接到一个单独的文件夹。
为此,我相信我只需要再完成一个步骤:在 $_request、$_POST 或$_GET 数组未设置。
从谷歌搜索看来,Jquery File Upload plugin: Dynamically change upload path? 正是我想要做的。
唯一的问题是最后一步没有解释!我是 JS、Jquery 和 ajax 的新手。有人可以解释如何使用 jquery 使会话 ID 在 php 脚本中可用。
作为提示,blueimp 作者在https://github.com/blueimp/jQuery-File-Upload/issues/241 中写了以下内容
看看 example/application.js,第二部分注释为 // 加载现有文件: 在那里,添加 + '?ext=VAR1¬a=VAR2' 在后面 $('#file_upload').fileUploadUIX('option', 'url') 并将 VAR1 和 VAR2 调整为所需的路径变量。
当前main.js文件中的代码是
$('#fileupload').each(function () {
var that = this;
$.getJSON(this.action, function (result) {
if (result && result.length) {
$(that).fileupload('option', 'done')
.call(that, null, {result: result});
}
});
});
谢谢,
比尔
【问题讨论】:
-
您确定需要将会话 ID 作为查询字符串的一部分放入吗?您的会话 ID 应作为 cookie 发送给用户,然后自动备份上传。如果你需要一些特别的东西,你可以在 $_SESSION 中第一次显示页面之前设置它。当您尝试解析文件时,它应该再次可用。此时,您可以将其移动到您需要的位置,而不是使其转到上传 javascript 中的其他文件夹。这有意义吗?
-
您好,mcarpenter,感谢您的 cmets。只是为了我的理解,如果我将会话 ID 存储在 cookie 中,服务器端和客户端都可以使用它吗?据我所知,作者建议通过将会话 ID 附加到 jquery 中的查询字符串上来处理它(请参阅上面的代码)
-
是的,它不应该被要求单独传递,并且你的会话 id 应该已经是一个 cookie,除非 codeigniter 对其会话做了一些时髦的事情。我自己使用 blueimp 代码,我不担心发送任何额外的会话信息。我将在下面发布我的示例作为答案。
标签: javascript jquery codeigniter blueimp