如何使用javascript将blob发布为文件?
我有一个表单,其中包含两个输入,一个用name=“action”隐藏,另一个用name=“avatar”type=“file”隐藏。 用户在化身输入中选择文件后,图像将转换为blob。 我如何发布blob,就像它是作为文件加载并在提交后发布的一样 表格: php控制器:如何使用javascript将blob发布为文件?,javascript,php,Javascript,Php,我有一个表单,其中包含两个输入,一个用name=“action”隐藏,另一个用name=“avatar”type=“file”隐藏。 用户在化身输入中选择文件后,图像将转换为blob。 我如何发布blob,就像它是作为文件加载并在提交后发布的一样 表格: php控制器: if ($_FILES['avatar']['name']) { if ($profile->avatar==1) { unlink('/images/avatars/'.$
if ($_FILES['avatar']['name']) {
if ($profile->avatar==1) {
unlink('/images/avatars/'.$profile->avatar);
$profile->avatar=0;
}
$filename="avatar_".$user_id.'.'.pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION);
move_uploaded_file($_FILES['avatar']['tmp_name'],$_SERVER['DOCUMENT_ROOT'] ."/images/avatars/".$filename);
$profile->avatar=$filename;
}
但php控制器并没有保存它。如果我使用不带脚本的表单,它会将图像转换为blob-效果良好并保存文件。我已经更新了脚本
fd.append('blob', blob.replace("data:image/png;base64,", "")
fd.append('ext', "jpg") // send ext of uploaded file
和php控制器
if ($_POST['blob']) {
if ($profile->avatar==1) {
unlink('/images/avatars/'.$profile->avatar);
$profile->avatar=0;
}
$file = base64_decode($_POST['blob']);
$filename="avatar_".$user_id.'.'.$_POST['ext'];
file_put_contents($_SERVER['DOCUMENT_ROOT'] ."/images/avatars/".$filename, $file);
$profile->avatar=$filename;
}
请提供更多的codefile.name=加载文件的名称;blob=数据:图像/png;base64,…..[二进制代码];只有这部分代码进行POST操作,其他代码更新blob。我只是想获得提交带有更新图像的表单的方法。嗨,迈克,我能让你做一个完整代码的示例吗?不能让它工作,我不知道是什么问题
fd.append('blob', blob.replace("data:image/png;base64,", "")
fd.append('ext', "jpg") // send ext of uploaded file
if ($_POST['blob']) {
if ($profile->avatar==1) {
unlink('/images/avatars/'.$profile->avatar);
$profile->avatar=0;
}
$file = base64_decode($_POST['blob']);
$filename="avatar_".$user_id.'.'.$_POST['ext'];
file_put_contents($_SERVER['DOCUMENT_ROOT'] ."/images/avatars/".$filename, $file);
$profile->avatar=$filename;
}