我有一个使用AJAX插入一些值的表单,现在 我想添加一个图像,但我无法获得图像 只需使用中的超全局$ _FILE ['file_name']即可 PHP代码,导致与PHP的通信是在AJAX下。 所以我想知道我是否可以从PHP加载文件 使用文件的路径,事实上我可以简单地传递它 通过JS / AJAX。
或者它是一种允许我获取整个文件的方法 来自JS / AJAX的二进制代码,然后将其传递给PHP 和finallu把它放在SQL db的BLOB中?
Ps。:显然我必须使用ajax
答案 0 :(得分:0)
如果文件已经存在于服务器上,我认为最好只通过AJAX将文件路径传递给PHP,并使用PHP的file_get_contents
函数来读取它。
如果服务器上不存在该文件,您最好提交表单。在服务器上执行的PHP无法获取文件路径并从客户端获取文件。
如果你可以使用jQuery,你可以使用HTML表单并捕获提交事件,serialize将表单转换为变量,通过AJAX传递,并返回false以防止表单提交(导致页面)重装)。
<小时/> 的修改
第二个想法,serialize
不是解决方案的唯一部分。这只会获得文件输入的值,而不是文件的内容。获取内容会更加乏味。看起来W3C正在研究something。
可能最好只使用标准HTML表单。
答案 1 :(得分:0)
目前,AJAX不允许您上传文件。
您只需要使用传统方法。
然而,Firefox和Chrome有点可能。但是这种方法在IE中不起作用而且相当复杂。
修改强>
可以考虑让Javascript使用这个https://developer.mozilla.org/en-US/docs/DOM/FileReader,序列化并使用AJAX通过POST发布。有点复杂。 FileReader适用于Chrome和最新版本的Firefox。我认为它也适用于Safari和Opera(但不是100%肯定)。可能不适用于IE。
但是现在让所有浏览器都能正常工作会有点复杂。
答案 2 :(得分:0)