3 回答
TA贡献1856条经验 获得超17个赞
我认为您应该完全放弃当前的方法,并用以下方法替换它:
<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>
然后,在您的服务器端代码上,像这样检查结果:
<?php
print_r($_POST); // All of your post fields
print_r($_FILES); // All of the file uploads
看看move_uploaded_file()什么时候知道你想把它放在哪里。
有很多好处:
一个真正的二进制文件上传,没有 33% 的 base-64 的浪费和开销,也没有每一方的 CPU 来处理它
只接受图像 (
accept="image/*"
)的图像输入表单可以由屏幕阅读器和其他浏览器控件提交,而不仅仅是一些没有上下文的按钮
根本不需要 JavaScript!
标准流式上传,以减少服务器上的内存使用量。
不需要对潜在的巨大 JSON blob 进行编码/解码。
TA贡献1851条经验 获得超5个赞
布拉德指出了一种更有效的方法,但是按照您的代码,我看到您保留了字符串而不是 base64_decode 的结果。
改变
//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 关注
- 133 浏览
添加回答
举报