php – 尝试使用输入类型文本传递超过524288字节的ToDataURL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 尝试使用输入类型文本传递超过524288字节的ToDataURL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1403字,纯文字阅读大概需要3分钟。
内容图文
![php – 尝试使用输入类型文本传递超过524288字节的ToDataURL](/upload/InfoBanner/zyjiaocheng/711/560148404d8d4b8a9cfbe50aad20ec4f.jpg)
我正在尝试使用Canvas的DataURL(使用JavaScript)创建图像.当用户点击提交时,该值将被发送到输入类型文本标记(例如,< input type ='text'>),但是,显然在Chrome上,当文本长度为524,288个字符时,文本会被截断.
我将它发送到输入标签,因为我需要获取PHP中的值(作为$_POST [‘dataurltext’];),以便我可以创建一个图像并将其上传到我的Web服务器.
关于如何绕过这个长度的任何想法?
我应该使用评论框吗?
感谢您的帮助,我们将不胜感激.
解决方法:
尝试在javascript上以Blob形式发送画布;使用fopen()与php://输入作为参数读取Blob,stream_copy_to_stream或file_get_contents(),file_put_contents()来处理php文件
if (!HTMLCanvasElement.prototype.toBlob) {
Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
value: function (callback, type, quality) {
var binStr = atob( this.toDataURL(type, quality).split(',')[1] ),
len = binStr.length,
arr = new Uint8Array(len);
for (var i=0; i<len; i++ ) {
arr[i] = binStr.charCodeAt(i);
}
callback( new Blob( [arr], {type: type || 'image/png'} ) );
}
});
}
Beyond $_POST, $_GET and $_FILE: Working with Blob in JavaScript and PHP
<?php
// choose a filename
$filename = "hello.json";
// the Blob will be in the input stream, so we use php://input
$input = fopen('php://input', 'rb');
$file = fopen($filename, 'wb');
// Note: we don't need open and stream to stream, we could've used file_get_contents and file_put_contents
stream_copy_to_stream($input, $file);
fclose($input);
fclose($file);
?>
内容总结
以上是互联网集市为您收集整理的php – 尝试使用输入类型文本传递超过524288字节的ToDataURL全部内容,希望文章能够帮你解决php – 尝试使用输入类型文本传递超过524288字节的ToDataURL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。