为了账号安全,请及时绑定邮箱和手机立即绑定

如何将输入图像保存在带有 longblob 列的数据库中?

如何将输入图像保存在带有 longblob 列的数据库中?

PHP
撒科打诨 2022-01-02 19:46:31
我有一个文件类型输入。我希望将插入到输入中的照片发送到数据库并保存。我写了一些根据逻辑应该可以工作的代码。但我不知道为什么它不起作用。我错在哪里?列照片是 longblob 类型html     <label for="">img</label>     <input type="file"  id="immagine" >javascript     function values(a){      if (a.length>1){       var img;       const fr = new FileReader();       fr.onload = () => {        // It worked         img = fr.result;           var params= "V1="+a[2]+"& V2="+a[3]+"& V3="+a[4]+"& V4="+a[5]+"& V5="+a[6]+"& V6="+a[7]+"& V7="+a[8]+"& V8="+a[9]+"& V9="+a[10]+"& V10="+a[11]+"& V11="+a[12]+"& V12="+a[13]+"& V13="+a[14]+"& V14="+a[15]+"& img="+img;           var xhttp = new XMLHttpRequest();           xhttp.onreadystatechange = function() {            if (this.readyState == 4 && this.status == 200) {            }           };           xhttp.open("POST", "./server/AggiuntaBhk.php", true);           xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");            xhttp.send( params);        // ...use the array here...           };           fr.onerror = () => {              // The read failed, handle/report it                document.getElementById("a").innerHTML= "noo";                                    };          fr.readAsBinaryString(document.getElementById('immagine').files[0]);}}php     include("../../connessione_db/db_con.php"); // Include il file di connessione al database     session_start();     $v1=$_REQUEST["V1"];     $v2=$_REQUEST["V2"];     $v3=$_REQUEST["V3"];      $v4=$_REQUEST["V4"];     $v5=$_REQUEST["V5"];     $v6=$_REQUEST["V6"];     $v7=$_REQUEST["V7"];     $queryI = mysqli_query($connessione_al_server,$queryInput);查询后显示              <?php                echo '<img id="imgcaricata" class="mySlides"                  src="data:image/jpeg;base64,'.base64_encode( $foto["Foto"]                    ).'"                 style="height:auto; width:auto;max-width:500px; margin-top:55px;" />';                 ?>我也尝试过until8Array,FileReader.readAsArrayBuffer()在数据库中我有正确的文件,但没有显示任何内容。如果我使用浏览选项直接在数据库中插入图像,我只能看到图像。存储或展示我错了吗?
查看完整描述

1 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

首先通过 JavaScript 读取文件:


var oFReader = new FileReader();

oFReader.readAsDataURL(document.getElementById("immagine").files[0]);

oFReader.onload = function (oFREvent) {

    imgdata = oFREvent.target.result;

};

添加imgdata在params:


var params = "img=" + encodeURIComponent(imgdata);

发送到服务器:


xhttp.send(params);

查询后显示:


<?php

echo '<img id="imgcaricata" class="mySlides" src="'.$foto["Foto"].'" style="height:auto; width:auto;max-width:500px; margin-top:55px;"/>';

?>


查看完整回答
反对 回复 2022-01-02
  • 1 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信