【发布时间】:2014-06-09 06:43:01
【问题描述】:
我想将图像转换为 Base64 并放入我的数据库。 我知道如何将图像编码为 Base64,但我不知道如何使用来自用户的文件。
因此用户可以使用<input type="file" />“上传”文件
但是如何在不下载文件并将其存储在我的服务器上的情况下处理该文件?
所以我在用户他/她的计算机上实际本地编码文件
谢谢
【问题讨论】:
-
简而言之:你不能。这是内置于 http 服务器的安全限制。以这种方式上传的每个文件都将保存到一个临时文件中,您对此无能为力,除了访问该临时文件来处理文件数据之外别无他法。这是故意的。
-
为什么要在client端编码?由于用户可能不愿意理解并执行此操作,您必须在脚本级别 (javascript) 自动执行此操作,但是 为什么?
-
@arkascha 这不是 web 服务器做的,是 php 模块将上传的文件保存到临时路径中。
-
@Jack:php 模块,正如它的名字“模块”已经说过的,在 http 服务器进程的范围内执行。将 php 模块想象成一个库,或者更好地作为 http 服务器的插件。所以是的,这里的活动实例“做”的事情是 http 服务器。
-
@arkascha 不,执行工作的活动实例是 php 模块;文件上传从其指定的输入流中读取;这也是
is_uploaded_file()知道当前请求中上传了哪个文件的方式。
标签: php file base64 local-storage local