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)行編碼/解碼。

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);
- 3 回答
- 0 關(guān)注
- 150 瀏覽
添加回答
舉報(bào)