blueimp jQuery-文件-上传。自定义上传文件夹:在获取数据之前更新变量
blueimp jQuery-File-Upload. Custom upload folder: update variable before fetching data
我的文件上传小部件有问题。我正在尝试为每个演示文稿创建一个自定义文件夹,并在每个演示文稿中为每个商业广告创建一个子文件夹。它以某种方式像这样。用户 chooses/creates 演示文稿 -> 用户 chooses/creates 所选演示文稿中的商业广告 -> 用户上传文件 -> 创建文件夹,例如。 Presentation_1/Commercial_2/uploadedimg.jpg。下次用户导航到相同的演示文稿和相同的商业广告时,将显示上传的文件。目前,我正在使用 PHP $_Session 来 select 根据所选演示文稿-> 商业显示正确的数据。问题是当页面被加载时,blueimp index.php 也会被加载,它会在您选择正确的 presentation->commercial 之前设置变量。因此它显示了您上次制作的 selection 并显示了错误的项目。我如何在单击某些按钮后强制更新变量或在单击按钮后延迟 UploadHandler.php 的加载?可能有一些错别字,但代码是有效的,只有一次刷新太晚了!任何帮助或线索将不胜感激!
App.js
// after button click
var myData4={"selectedPres":selectedPres,"selectedComm":selectedComm};
$.ajax({
url : "./server/php/passSession.php",
type: "POST",
data : myData4,
success: function(data)
{
}
});
passSession.php
<?php
session_start();
require_once('connections.php');
if ($con) {
mysqli_set_charset($con,"utf8");
if (isset($_POST["selectedComm"]) && !empty($_POST["selectedComm"])) {
$selectedPres= $_POST['selectedPres'];
$selectedComm= $_POST['selectedComm'];
$_SESSION['selectedPres'] = $selectedPres;
$_SESSION['selectedComm'] = $selectedComm;
}
else {
echo "Error";
}
} else {
echo "No connection to database";
}
?>
Index.php
<?php
session_start();
error_reporting(E_ALL | E_STRICT);
if(isset($_SESSION["selectedComm"]) && (!empty($_SESSION["selectedComm"]))) {
$selectedPres= $_SESSION['selectedPres'];
$selectedComm= $_SESSION['selectedComm'];
require('UploadHandler.php');
$upload_handler = new UploadHandler($selectedPres, $selectedComm);
}
else
echo "Error in php session.";
?>
UploadHandler.php
function __construct($selectedPres, $selectedComm, $options = null, $initialize = true, $error_messages = null) {
$this->response = array();
$this->options = array(
'script_url' => $this->get_full_url().'/'.basename($this->get_server_var('SCRIPT_NAME')),
'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/'.$selectedPres.'/'.$selectedComm.'/',
'upload_url' => $this->get_full_url().'/files/'.$selectedPres.'/'.$selectedComm.'/', ...
问题已解决..只需在显示之前更新文件列表.. :D $(".table tr").remove(); $('#fileupload').fileupload({ url: "server/php/" }); $('#fileupload').addClass('fileupload-processing'); $.ajax({ url: $('#fileupload').fileupload('option', 'url'), 数据类型: 'json', 上下文: $( '#fileupload')[0] }).always(function () { $(this).removeClass('fileupload-processing'); }).done(function (result) { $(this).fileupload('option', 'done') .call(this, $.Event('done'), {result: result}); });
我的文件上传小部件有问题。我正在尝试为每个演示文稿创建一个自定义文件夹,并在每个演示文稿中为每个商业广告创建一个子文件夹。它以某种方式像这样。用户 chooses/creates 演示文稿 -> 用户 chooses/creates 所选演示文稿中的商业广告 -> 用户上传文件 -> 创建文件夹,例如。 Presentation_1/Commercial_2/uploadedimg.jpg。下次用户导航到相同的演示文稿和相同的商业广告时,将显示上传的文件。目前,我正在使用 PHP $_Session 来 select 根据所选演示文稿-> 商业显示正确的数据。问题是当页面被加载时,blueimp index.php 也会被加载,它会在您选择正确的 presentation->commercial 之前设置变量。因此它显示了您上次制作的 selection 并显示了错误的项目。我如何在单击某些按钮后强制更新变量或在单击按钮后延迟 UploadHandler.php 的加载?可能有一些错别字,但代码是有效的,只有一次刷新太晚了!任何帮助或线索将不胜感激!
App.js
// after button click
var myData4={"selectedPres":selectedPres,"selectedComm":selectedComm};
$.ajax({
url : "./server/php/passSession.php",
type: "POST",
data : myData4,
success: function(data)
{
}
});
passSession.php
<?php
session_start();
require_once('connections.php');
if ($con) {
mysqli_set_charset($con,"utf8");
if (isset($_POST["selectedComm"]) && !empty($_POST["selectedComm"])) {
$selectedPres= $_POST['selectedPres'];
$selectedComm= $_POST['selectedComm'];
$_SESSION['selectedPres'] = $selectedPres;
$_SESSION['selectedComm'] = $selectedComm;
}
else {
echo "Error";
}
} else {
echo "No connection to database";
}
?>
Index.php
<?php
session_start();
error_reporting(E_ALL | E_STRICT);
if(isset($_SESSION["selectedComm"]) && (!empty($_SESSION["selectedComm"]))) {
$selectedPres= $_SESSION['selectedPres'];
$selectedComm= $_SESSION['selectedComm'];
require('UploadHandler.php');
$upload_handler = new UploadHandler($selectedPres, $selectedComm);
}
else
echo "Error in php session.";
?>
UploadHandler.php
function __construct($selectedPres, $selectedComm, $options = null, $initialize = true, $error_messages = null) {
$this->response = array();
$this->options = array(
'script_url' => $this->get_full_url().'/'.basename($this->get_server_var('SCRIPT_NAME')),
'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/'.$selectedPres.'/'.$selectedComm.'/',
'upload_url' => $this->get_full_url().'/files/'.$selectedPres.'/'.$selectedComm.'/', ...
问题已解决..只需在显示之前更新文件列表.. :D $(".table tr").remove(); $('#fileupload').fileupload({ url: "server/php/" }); $('#fileupload').addClass('fileupload-processing'); $.ajax({ url: $('#fileupload').fileupload('option', 'url'), 数据类型: 'json', 上下文: $( '#fileupload')[0] }).always(function () { $(this).removeClass('fileupload-processing'); }).done(function (result) { $(this).fileupload('option', 'done') .call(this, $.Event('done'), {result: result}); });