将创建的Canvas图像附加到输入文件以上传它。 html5,Jquery

时间:2018-03-23 04:35:10

标签: jquery

在页面create.php的“创建新帖子”部分中,用户有两个选项:

1)使用电脑上的input[type="file"上传图片。

2)选择附加到模因生成器插件的图像,以此方式检索完成的画布图像.... canvas.toDataUrl()

问题

在第二个选项中,一旦完成模因,我想将其附加到第一个选项的input file以将其与帖子一起上传。

我该怎么做?

HTML

  <textarea id="comment"></textarea>
  <input type="file" id="imgtoUpload" />
  <canvas id="meme"></canvas>

JS

  canvas.toDataUrl();// meme to attach

1 个答案:

答案 0 :(得分:1)

你没有。

<input type="file">专门针对来自计算机的文件,将在发布时间后解决。如果从其他地方获取数据,比如canvas.toDataURL(),则添加<input type="hidden" name="fromcanvas">并使用第二个选项使用toDataURL的结果填充该输入。当用户单击文件输入时,擦除隐藏字段,如果他们使用模因生成器,则擦除文件输入字段,这样就不会在两者中都有数据。

然后在发布表单时,请为两个字段检查提交的formdata检查:如果有与您的<input type="file">关联的文件输入,请使用该表单,如果有相关数据使用隐藏的输入,请改用它。

(当然,要确保你真正得到的是图像数据,而不是.php文件。后门PHP服务器的最常见方法是盲目欺骗图像上传脚本将文件写入磁盘,该磁盘在图像输入中作为表单数据发送。在实际将其输入磁盘之前尝试通过gdimagemagick或其他东西运行验证输入!)