我正在使用Nihilogic的"Canvas2Image"JavaScript工具将画布图转换为PNG图像.我现在需要的是使用PHP将这个工具生成的base64字符串转换为服务器上的实际PNG文件.
简而言之,我目前正在做的是使用Canvas2Image在客户端生成文件,然后检索base64编码的数据并使用AJAX将其发送到服务器:
// Generate the image file
var image = Canvas2Image.saveAsPNG(canvas, true);
image.id = "canvasimage";
canvas.parentNode.replaceChild(image, canvas);
var url = 'hidden.php',
data = $('#canvasimage').attr('src');
$.ajax({
type: "POST",
url: url,
dataType: 'text',
data: {
base64data : data
}
});
Run Code Online (Sandbox Code Playgroud)
此时,"hidden.php"收到一个看起来像数据的数据块:image/png; base64,iVBORw0KGgoAAAANSUhEUgAABE ...
从现在开始,我非常难过.从我读过的内容来看,我认为我应该使用PHP的imagecreatefromstring函数,但我不确定如何从base64编码的字符串中实际创建一个实际的PNG图像并将其存储在我的服务器上.请帮助!
我有一个包含pdf的base64编码的字符串.如何.pdf
使用php从这个编码的字符串创建一个文件?
像Content-type:application/pdf
标题函数一样?
我知道这个问题也早先被问过,但我的问题有点不同.
我想将图像上传到PHP服务器,我想从iOS发送更多参数和图像.我在谷歌搜索并找到了两个解决方案:
现在我的问题是,哪一个是将图像上传到服务器的最佳方式,我必须在同一个Web服务调用中发送更多参数(用户名,密码和更多细节).
提前致谢.
我正在将图像保存到uploads文件夹,但我使用的是file_put_contents而不是wp_handle_upload - 因为我在base64中获取了一个图像而不是$ _FILES中的文件.
保存/更新图像和某些发布数据,因为它们应该使用此功能:
问题是当我想删除旧图像时(保存新图像时).
wp_delete_attachment不会删除图像(虽然它似乎删除了数据库中的东西..).我认为问题在于不使用wp_handle_upload.(当我通过上传btn上传图像并使用$ _FILES接收它然后使用wp_handle_upload上传它 - 删除工作)
有谁知道在我的情况下删除图像的正确方法是什么?也许我可以使用wp_handle_upload正确保存它,即使我在base64中有图像?
谢谢你的任何信息.
编辑:我也尝试用wp_upload_bits保存图像,wp_delete_attachment仍然无法正常工作.
我检查的另一件事:wp_handle_upload函数的代码位于wp-admin/includes/file.php
:我没有看到一种简单的方法来修改或复制现有函数,并添加一个自定义的函数,它将接受base64图像而不是$ _FILES中的文件.有人可能有"base64到$ _FILES"的解决方法吗?
我正在 Laravel 5.4 中开发 api。我将收到 Base64 格式的图像。如何在 Laravel 中将 base64 转换为图像?
好吧所以我正在尝试将调整大小的画布图像作为文件上传到Flask.
首先,我尝试使用canvas.toDataURL()
它将其转换为base64(?)字符串,然后尝试使用formdata
AJAX 将其作为图像上传,没有运气.
然后我尝试使用此函数将base64转换为blob:
function toblob(stuff) {
var g, type, bi, ab, ua, b, i;
g = stuff.split(',');
if (g[0].split('png')[1])
type = 'png';
else if (g[0].split('jpeg')[1])
type = 'jpeg';
else
return false;
bi = atob(g[1]);
ab = new ArrayBuffer(bi.length);
ua = new Uint8Array(ab);
for (i = 0; i < bi.length; i++) {
ua[i] = bi.charCodeAt(i);
}
b = new Blob([ua], {
type: "image/" + type
});
return b;
}
Run Code Online (Sandbox Code Playgroud)
不是形象......
这是我使用的ajax表单:
s = new FormData();
s.append('image', …
Run Code Online (Sandbox Code Playgroud) 我是Angular的新手.我正在使用Angular 4.其中需要将base64 Image作为模型成员之一发送到web api.是否有一个Angular组件或指令将base64绑定到所述模型?
感谢并感谢您的帮助.
我从API请求响应中获取base64二进制编码的数据。我需要将其另存为zip文件。我使用如下代码。
<?php
$zipStr = 'UEsDBBQACAAIABprdEEAAAAAAAAAAAAAAAAWAAAAb2JqZWN0cy9Db250YWN0Lm9iamVjdI2SX0vDMBTF3/cpSt9NOhERyTJCl+Gga6VNBZ9GlmWuI21mk0799ka7P50TXR4C9+R3L5ecg4bvpfK2sjaFrgZ+HwS+JyuhF0X1MvBzNr6684e4h8LGWF0m87UU1nMtlRn4K2s39xAazTfALHUtJBC6hNdBcAuDG1hKyxfcch/3PHeQKox9KuSbaetvbdkoFfNSYqEry4WdpXxdzBE86EdUaNWUlcHjPIpmMZlSBPfSOUTCMMljBv7jwiRmJGSATVh0Efj4kMS0fwlJp2QS/Q2mFOQZTTNAognJfmOXhbKyzoTeSEydSx925Yxx/9PRf9Kd/p0q1eKwVphSwuhoNnL315yvt1Pezay5dXHAShqT1PS14QrBo3yKb7lqJGbJiDwj2BbHjeDZSkjxuVR7v72d363Y5gR2goJgN3i49wlQSwcI3kTEMT8BAACvAgAAUEsDBBQACAAIABprdEEAAAAAAAAAAAAAAAALAAAAcGFja2FnZS54bWxNj00LwjAMhu/7FaN3lzpkiHTdQfDkQUS9StbFWbXtWIsf/96xDzSX5CF53ySieJtH/KTWa2dzNk84i8kqV2lb5+x42MyWrJCR2KG6Y01xN219zq4hNCsA77BJ/MW1ihLlDKScZ8AXYChghQGZjOIuRPg05Ie6Z0Om7FbKtbMBVei0fT7v8aZLAVP7J7BoSG61DydNLwE9Dtbw5y3GP2SaJVzARJGA8XwZfQFQSwcIaf0pNKsAAADwAAAAUEsBAhQAFAAIAAgAGmt0Qd5ExDE/AQAArwIAABYAAAAAAAAAAAAAAAAAAAAAAG9iamVjdHMvQ29udGFjdC5vYmplY3RQSwECFAAUAAgACAAaa3RBaf0pNKsAAADwAAAACwAAAAAAAAAAAAAAAACDAQAAcGFja2FnZS54bWxQSwUGAAAAAAIAAgB9AAAAZwIAAAAA';
header('Content-Type: application/zip');
header('Content-disposition: filename="my.zip"');
$out = base64_decode($zipFileValue);
print($out);
?>
Run Code Online (Sandbox Code Playgroud)
但是我得到了SFX zip存档作为可下载选项。我无法使用PHP解压缩。我可以解压缩其他普通的zip文件,但不能解压缩此SFX zip。谁能帮助我将编码数据另存为zip或告诉我如何解压缩SFX zip存档。
在 symfony 中,我有一个 entity Program
,它具有属性image
。上传图像、命名它们并将它们放在正确的目录中是使用VichUploaderBundle
. 该实体如下所示:
//...
/**
* NOTE: This is not a mapped field of entity metadata, just a simple property.
*
* @Assert\Image(
* maxSize="5M",
* mimeTypesMessage="The file you tried to upload is not a recognized image file"
* )
* @Vich\UploadableField(mapping="program_image", fileNameProperty="imageName")
*
* @var File
*/
private $image;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private $imageName;
//...
Run Code Online (Sandbox Code Playgroud)
现在我希望在上传图像之前对图像进行处理,我已经用一些返回 base64 字符串的 JS 完成了这项工作。我把这个字符串放在一个隐藏的输入字段中,base64Image
. 然后我在我的控制器中检索这个字符串并尝试将它变成一个图像,我可以像这样保存到我的实体中:
if ($form->isSubmitted() && $form->isValid()) { …
Run Code Online (Sandbox Code Playgroud) 我有一个$data
带a 的变量base64
:它是图像或文件。
我想将此文件移动到文件夹中...但是它已作为空文件移动。
我的代码:
$file_name = Input::get('file_name');
$image = base64_decode($data);
file_put_contents(public_path('/user_attachments/').$file_name, $image);
Run Code Online (Sandbox Code Playgroud)
请任何人帮助?
public function addNewCategory($category_title, $strImage) {
// get the image from the base64 string.
$strImage = str_replace('data:image/png;base64,', '', $strImage);
$strImage = str_replace(' ', '+', $strImage);
$strImage = base64_decode($strImage);
// set the path name of where the image is to be stored.
$path = dirname(__FILE__).'/category_images/'.$category_title.".png";
// save the image in the path.
file_put_contents($path, $image);
// insert category and the image path into the MySQL database.
$result = mysqli_query($this->db->connect(), "INSERT INTO category(category_title, path, created_at) VALUES ('$category_title', '$path', NOW())");
if ($result) {
return mysqli_fetch_array($result); …
Run Code Online (Sandbox Code Playgroud) php ×5
base64 ×4
image ×2
javascript ×2
laravel ×2
ajax ×1
angular ×1
canvas ×1
components ×1
directive ×1
encode ×1
flask ×1
header ×1
html5-canvas ×1
ios ×1
objective-c ×1
pdf ×1
python ×1
symfony ×1
symfony4 ×1
unzip ×1
upload ×1
web-services ×1
wordpress ×1
zip ×1