1

我正在使用 jSignature 来允许以 html 形式签名(确切地说是 jQuery Mobile)。我希望能够在表单中提交签名的图像。

通过下面的代码,我已经完成了最初的几个步骤——这对我来说已经够难了。它成功创建了 DataURI (data:image/png;base64,iVBOR...),并在调用 placesig 函数时将其添加到隐藏字段 _fid_86 的值中。

我需要帮助:1)如何将 DataURI 转换为提交时可以包含在表单数据中的图像?2)如何将该图像连接到隐藏输入?相同的方法会起作用,还是需要文件输入。

我正在从 web 应用程序将此表单发布到 QuickBase。理想情况下,我希望能够在没有任何服务器端参与的情况下完成此操作,以便应用程序自给自足,而不依赖于 php 或其他托管脚本。

如果那不可能,我可以用 php 来做,但仍然不知道如何做到这一点。

我在这上面花了几天时间。而且我知道我缺乏编程知识是罪魁祸首。解决这个问题对我来说是巨大的。

谢谢!!

<body>
<script src="jquery-1.8.2.min.js"></script>
<script src="jquery.mobile-1.2.0.min.js"></script>
<script src="jSignature.js"></script>
</head>
<body>

<form name=qdbform method=POST onsubmit='return validateForm(this)' encoding='multipart/form-data' 

encType='multipart/form-data' action=https://www.quickbase.com/db/...?act=API_AddRecord>

<script type="text/javascript">
var $sigDiv = null;

$(document).ready(
    function() 
    {
        $sigDiv = $("#signature1").jSignature({'UndoButton':false,color:"#000000",lineWidth:2});
    }
);

function placesig() 
{
    var datapair = $sigDiv.jSignature("getData", "image");
    var i = new Image();
    i.src = "data:" + datapair[0] + "," + datapair[1];
    var src = $(i).attr('src');
    $("#_fid_86").val(src);

};
</script>

<div id="signature1"></div>

<input data-theme="a" type="button" value="Place Image" onclick="placesig();"/>

<input type="hidden" id="_fid_86" name="_fid_86" />

<input type="submit" value="Save">

</form>
4

1 回答 1

0

没有服务器端代码是不可能做到这一点的。jSignature 将生成一个数据 URL,但这不能作为处理文件上传方式的多部分表单的一部分传递。相反,jSignature 将使用 dataURL 设置一个文本框,并且在服务器上您可以读取它并生成一个文件。这实际上包含在一个名为jSignature_Tools_Base30.php的示例中(甚至在 PHP 中) 。就我个人而言,我会选择SVN 示例(通过网络传输的数据更少,扩展更灵活。

于 2012-12-17T21:34:42.377 回答