Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript将blob发布为文件?_Javascript_Php - Fatal编程技术网

如何使用javascript将blob发布为文件?

如何使用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/'.$

我有一个表单,其中包含两个输入,一个用name=“action”隐藏,另一个用name=“avatar”type=“file”隐藏。 用户在化身输入中选择文件后,图像将转换为blob。 我如何发布blob,就像它是作为文件加载并在提交后发布的一样

表格:

php控制器:

    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;
    }