0

父页面包括表单,带有一个触发 Shadowbox 子级的按钮。

Shadowbox 子包含一个表单,在提交后填充隐藏的父表单数据。非图像数据很容易。

如何处理图像?换句话说,我如何将要上传的图像从Shadowbox传播到父级,然后在父级表单提交后上传?

选择标签是因为我正在使用这些语言。

4

1 回答 1

0

我发现解决这个问题的最简单方法是使用这个答案,这需要一些认真的挖掘。

本质上,使用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 存储中。

于 2013-05-09T21:06:45.717 回答