父页面包括表单,带有一个触发 Shadowbox 子级的按钮。
Shadowbox 子包含一个表单,在提交后填充隐藏的父表单数据。非图像数据很容易。
如何处理图像?换句话说,我如何将要上传的图像从Shadowbox传播到父级,然后在父级表单提交后上传?
选择标签是因为我正在使用这些语言。
父页面包括表单,带有一个触发 Shadowbox 子级的按钮。
Shadowbox 子包含一个表单,在提交后填充隐藏的父表单数据。非图像数据很容易。
如何处理图像?换句话说,我如何将要上传的图像从Shadowbox传播到父级,然后在父级表单提交后上传?
选择标签是因为我正在使用这些语言。
我发现解决这个问题的最简单方法是使用这个答案,这需要一些认真的挖掘。
本质上,使用onchange
输入文件字段上的事件,将用户浏览到的图像的 base64 编码版本保存在父页面的变量中。
影盒页面:
// In your JS
$('[type=file]').change(function ()
{
if (input.files && input.files[0])
{
var reader = new FileReader();
reader.onload = function (e)
{
// This is where the parent var gets the encoded image.
self.parent.hiddenElement.val(e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
父页面:
// HTML
<input type='hidden' name='encoded_image' />
// In your JS
var hiddenElement = $('[name=encoded_image]');
提交父页面的表单后,现在可以将此 base64 编码图像保存到服务器上的 blob 存储中。