Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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
Php 使用ajax脚本传递base 64字符串_Php_Ajax_Post_Base64_Content Type - Fatal编程技术网

Php 使用ajax脚本传递base 64字符串

Php 使用ajax脚本传递base 64字符串,php,ajax,post,base64,content-type,Php,Ajax,Post,Base64,Content Type,我已经使用以下脚本将字符串url传递到另一个php页面 function saveIt(){ var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 20

我已经使用以下脚本将字符串url传递到另一个php页面

            function saveIt(){

                var xmlhttp = new XMLHttpRequest();

                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                        alert("Save successfully!");
                    }
                }

                var value1 = document.getElementById("url").value ;
                var value2 = document.getElementById("time").value;
                var value3 = document.getElementById("note").value;

               xmlhttp.open("POST", "insertFrame.php", true);
               xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
               xmlhttp.send("url="+ value1 + "&time=" + value2 + "&note=" + value3);



            }
之后,我将检索到的数据插入表中

$url = $_POST['url'];
$time = $_POST['time'];
$note = $_POST['note'];

mysql_connect("localhost", "root", "");
mysql_select_db("studioassessor_01");

mysql_query("INSERT INTO frame VALUES ('$url', '$time', '$note')");
但是,当我想从db中检索url以显示图像时,它失败了,看起来已经损坏

    <?php

        $con = mysql_connect("localhost", "root", "");
        mysql_select_db("studioassessor_01");

        $sql = mysql_query("SELECT * FROM frame");

        while($row = mysql_fetch_array($sql)){
            echo '<img src="' . $row['url'] . '">';

            echo "<br/><br/>";
            echo $row['note'];
        }

    ?>


在更改代码并进行测试之后,我发现xmlhttp.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”);这可能是导致我的url在传递到另一个php页面并存储在数据库中时变得不同的值的原因。我可以知道如何解决这个问题吗?

我已经用str_replace(“你的字符串”)解决了我的问题。这是因为编码时字符串值将全部更改为空格,并且+符号丢失。因此,我需要将其替换回来,以获取正确的url值并显示图像。谢谢。

base64_decode将url编码字符串转换回字节,因此如果$url是base64编码字符串,并且您想将其用作图像源,只需将其回显,而不进行解码。我尝试直接回显,但不进行解码,但仍然无法显示图像。所以,我想知道是不是setRequestHeaderPart让我的url在发送到另一个php页面进行存储时看起来有所不同。有人可以帮我吗?非常感谢。