将变量从输入表单传递到upload.class.php

时间:2012-10-01 22:37:44

标签: php jquery file-upload upload blueimp

我正在尝试实现blueimp jquery文件上传插件。 我的最终目标是让插件目标成为特定的上传文件夹,具体取决于URL指定的ID

ex)../ plugin_path / index.php?job = 13

然后上传将转到名为“13”的文件夹。因此,只有先前上传的“作业13”图像才会显示在上传页面上。

我的问题是在从URL请求值后:

$jobid=$_REQUEST['job'];

我无法将$ jobid变量传递给'upload.class.php'以在'upload_dir'中引用它。

有人知道如何做到这一点吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

我看了一下这个插件,你可以通过替换upload.class.php上的以下第39行来实现:

'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/files/',

以下内容:

'upload_dir' => isset($_REQUEST['job']) ? $_REQUEST['job'].'/' : dirname($_SERVER['SCRIPT_FILENAME']).'/files/',

答案 1 :(得分:1)

好的,我花时间研究并测试它,忘记我的其他答案,只需在您的插件文件夹中编辑server/php/index.php并替换以下行:

$upload_handler = new UploadHandler();

代码:

$option = null;
if (isset($_REQUEST['job'])) {
   if (substr($_REQUEST['job'],-1)!= '/') {
      $_REQUEST['job'] .= '/';
   }
   $dir = dirname($_SERVER['SCRIPT_FILENAME']).'/files/'.$_REQUEST['job'];
   if (!file_exists($dir)) {
      mkdir($dir, 0777, true);
   }
   $option = array('upload_dir' => $dir);
}

$upload_handler = new UploadHandler($option);

通过此更改,您的文件将正确上传到您在index.html隐藏的输入中指定的文件夹:

<input type="hidden" name="job" value="7">

有些事情需要改进,因为当您刷新页面时,只显示根上载文件夹中的文件,如果您希望它还显示通过'job'参数指定的子文件夹上的文件,则需要进行进一步修改。