jQuery 文件上传正在检索额外的表单数据
jQuery File Upload retrieving additional form data
我很难理解在使用 Blueimp jQuery 文件上传上传文件时如何检索额外的表单数据。我想在上传文件时传递一个附加到文件名的值...
我的#fileupload 表单中有一个隐藏输入...
<input type="hidden" name="referrer" id="referrer" value="123">
我已将此添加到我的 main.js...
$('#fileupload').bind('fileuploadsubmit', function (e, data) {
data.formData = $('form').serializeArray();
});
然后这个到 php 文件夹中的 index.php...
$smeg = $_POST['referrer'];
我现在无法解决的是如何在 UploadHander.php
中使用变量 $smeg
理想情况下,我想使用以下示例将变量添加到文件名中
protected function trim_file_name($file_path, $name, $size, $type, $error,$index, $content_range) {
return $name. ' - '.$smeg;
}
但每当我尝试使用 $smeg 时,我都会收到错误消息 $smeg is an undefined variable。
我是否正确传递了附加表单数据?如果是,我是否检索它以供使用?
在您的函数范围内 $smeg
未定义。所以你可以在函数内部使用 $_POST['referrer']
:
protected function trim_file_name($file_path, $name, $size, $type, $error,$index, $content_range) {
return $name . ' - ' . $_POST['referrer'];
}
或者为函数签名添加另一个参数:
protected function trim_file_name($file_path, $name, $smeg, $size, $type, $error,$index, $content_range) {
return $name . ' - ' . $smeg;
}
函数调用类似于:
trim_file_name($path, $name, $_POST['referrer'], /* more arguments */);
第二种方法 更可取 因为它消除了代码中 $_POST
数组的依赖性。
顺便说一下,如果您不在函数中使用所有这些参数 - 则无需在签名中定义它们并将函数简化为:
protected function trim_file_name($name, $smeg)
{
return $name . '-' . $smeg;
}
我很难理解在使用 Blueimp jQuery 文件上传上传文件时如何检索额外的表单数据。我想在上传文件时传递一个附加到文件名的值...
我的#fileupload 表单中有一个隐藏输入...
<input type="hidden" name="referrer" id="referrer" value="123">
我已将此添加到我的 main.js...
$('#fileupload').bind('fileuploadsubmit', function (e, data) {
data.formData = $('form').serializeArray();
});
然后这个到 php 文件夹中的 index.php...
$smeg = $_POST['referrer'];
我现在无法解决的是如何在 UploadHander.php
中使用变量 $smeg理想情况下,我想使用以下示例将变量添加到文件名中
protected function trim_file_name($file_path, $name, $size, $type, $error,$index, $content_range) {
return $name. ' - '.$smeg;
}
但每当我尝试使用 $smeg 时,我都会收到错误消息 $smeg is an undefined variable。
我是否正确传递了附加表单数据?如果是,我是否检索它以供使用?
在您的函数范围内 $smeg
未定义。所以你可以在函数内部使用 $_POST['referrer']
:
protected function trim_file_name($file_path, $name, $size, $type, $error,$index, $content_range) {
return $name . ' - ' . $_POST['referrer'];
}
或者为函数签名添加另一个参数:
protected function trim_file_name($file_path, $name, $smeg, $size, $type, $error,$index, $content_range) {
return $name . ' - ' . $smeg;
}
函数调用类似于:
trim_file_name($path, $name, $_POST['referrer'], /* more arguments */);
第二种方法 更可取 因为它消除了代码中 $_POST
数组的依赖性。
顺便说一下,如果您不在函数中使用所有这些参数 - 则无需在签名中定义它们并将函数简化为:
protected function trim_file_name($name, $smeg)
{
return $name . '-' . $smeg;
}