第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

PHP 的 base 64_decode 不會(huì)將 base 64 字符串轉(zhuǎn)換為真正可用的圖像文件

PHP 的 base 64_decode 不會(huì)將 base 64 字符串轉(zhuǎn)換為真正可用的圖像文件

PHP
繁華開滿天機(jī) 2021-10-08 14:31:18
大家好,我成功找到了一種方法,該方法聲稱可以在 JavaScript 中將文件輸入文件轉(zhuǎn)換為 base 64 字符串,因此我成功發(fā)送了該 base 64JSON 通過 AJAX 和 base 64 編碼的字符串看起來像這樣發(fā)送在 JSON 方法 "photo":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wB 等......"所以當(dāng) base 64 字符串到達(dá) PHP 文件時(shí)。PHP 很神奇并成功地將文件存儲(chǔ)在我希望文件所在的目標(biāo)文件夾中,所以當(dāng)我查看該文件夾時(shí),有一個(gè)文件但是當(dāng)我嘗試打開照片文件進(jìn)行查看時(shí),照片查看器應(yīng)用程序會(huì)顯示類似 image.jpg 的內(nèi)容,看起來我們不支持此文件格式,而在其他照片查看器應(yīng)用程序中,它會(huì)顯示一些內(nèi)容與此類似,所以我做錯(cuò)了什么?這是我的代碼索引.php<style>#photo-input{display: block;margin-bottom: 50px;}</style><script>document.addEventListener('DOMContentLoaded',function(){document.querySelector('#submit').addEventListener('click',function(){var photo_input= document.querySelector('#photo-input').files[0];//Convert #photo-input content into a base 64 stringvar reader = new FileReader();reader.readAsDataURL(photo_input);reader.onload = function (){var photo_input_result= reader.result;sendUploadInfo(photo_input_result);}//});function sendUploadInfo(photo_input_result){var photo= photo_input_result;//<JSON data>var upload_info = {    first_name: "John",    last_name: "Smith",    photo: photo};//</JSON data>var upload_info_json_object= 'upload_info_json_object='+JSON.stringify(upload_info); //<AJAX>var xhr= new XMLHttpRequest();xhr.onreadystatechange= function(){if(xhr.readyState == 4){document.querySelector('#output').innerHTML= xhr.responseText;}}xhr.open('POST','x');xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");xhr.send(upload_info_json_object);//</AJAX>}});</script><input type='file' id='photo-input'><button id='submit'>Send JSON data</button><div id='output'></div>
查看完整描述

3 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

我認(rèn)為您應(yīng)該完全放棄當(dāng)前的方法,并用以下方法替換它:


<form action="x.php" method="post" enctype="multipart/form-data">

  <input type="hidden" name="first_name" value="John" />

  <input type="hidden" name="last_name" value="Smith" />

  <input type="file" name="photo" accept="image/*" />

  <input type="submit" value="Upload Photo" />

</form>

然后,在您的服務(wù)器端代碼上,像這樣檢查結(jié)果:


<?php

  print_r($_POST); // All of your post fields

  print_r($_FILES); // All of the file uploads

看看move_uploaded_file()什么時(shí)候知道你想把它放在哪里。

有很多好處:

  • 一個(gè)真正的二進(jìn)制文件上傳,沒有 33% 的 base-64 的浪費(fèi)和開銷,也沒有每一方的 CPU 來處理它

  • 只接受圖像 ( accept="image/*")的圖像輸入

  • 表單可以由屏幕閱讀器和其他瀏覽器控件提交,而不僅僅是一些沒有上下文的按鈕

  • 根本不需要 JavaScript!

  • 標(biāo)準(zhǔn)流式上傳,以減少服務(wù)器上的內(nèi)存使用量。

  • 不需要對(duì)潛在的巨大 JSON blob 進(jìn)行編碼/解碼。


查看完整回答
反對(duì) 回復(fù) 2021-10-08
?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

布拉德指出了一種更有效的方法,但是按照您的代碼,我看到您保留了字符串而不是 base64_decode 的結(jié)果。


改變


//Photo upload section


$photo=$upload_info_json_object->photo;


base64_decode($photo);

為了


//Photo upload section


$photo=$upload_info_json_object->photo;


$photo=base64_decode($photo);


查看完整回答
反對(duì) 回復(fù) 2021-10-08
  • 3 回答
  • 0 關(guān)注
  • 150 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)