我有一个管理特定文件夹中上传的页面。在此页面上,每个文件夹都有一个上传表单。所以,这是我的javascript文件(main.js),每个表单都有".fileupload"类:
$(function () {
'use strict';
$('.fileupload').fileupload();
$('.fileupload').addClass('fileupload-processing');
$.ajax({
url: $('.fileupload').fileupload('option', 'url'),
dataType: 'json',
context: $('.fileupload')[0]
}).always(function () {
$(this).removeClass('fileupload-processing');
}).done(function (result) {
$(this).fileupload('option', 'done')
.call(this, $.Event('done'), {result: result});
});
});
为了告诉脚本捕获和上传特定文件夹中的文件,我在操作路径中添加了一个名为"文件夹"的变量,我将在我的索引.php上传脚本中获取该变量。这是我的 HTML :
<form class="fileupload" action="//mywebsite.com/server/php/index.php?folder=<?=$folder?>" method="POST" enctype="multipart/form-data">
...
</form>
这是我的PHP(服务器/php/index.php):
require('UploadHandler.php');
$upload_handler = new UploadHandler(array(
'upload_dir' => "/home/mywebsite/public_html/users/" . $_GET['folder'],
'upload_url' => "//mywebsite.com/users/" . $_GET['folder']
));
问题是它似乎不起作用。我的意思是,每个文件夹中的图像都不会显示,并且无论如何都不会开始上传。
我的问题是如何强制(通过我的 HTML/PHP)封装了特定变量(此处为"文件夹")的上传脚本路径?
我不太确定<?=$folder?>
做什么,但我怀疑这就是问题所在。为什么不在JS函数中动态生成动作链接?像这样:
var folder = 'folder1'; //<-- insert folder name here
var actionlink = '//mywebsite.com/server/php/index.php?folder=' + folder;
$('.fileupload').attr('action', actionlink);