我是新来的网络发展,我一直有最新的问题是AJAX文件上传...
现在我有两个HTML输入字段;一个文件输入和一个按钮。
<input type="file" name="Frame" id="Frame_"/>
<input type="button" name="FrameButton" id="FrameButton_" value="UPLOAD"/>
按钮被点击然后我打电话说有下面的代码功能后..
var frame = document.getElementById('Frame_');
var frameImg = frame.files[0];
var form_data = new FormData();
form_data.append('frame', frameImg);
jQuery.ajax({
url : './handler.php',
type : 'post',
data : form_data
contentType : false,
processData : false,
success : alert("Frame Uploaded")
});
当我的var_dump()的$ _POST和$ _FILES数组显示两个数组都为空。尽管Chrome Dev中的“Request Payload”请求是
Content-Disposition:form-data; NAME = “框架”;文件名=“GoldFrame.jpg”
内容类型:image/JPEG
在其中我的印象是,这意味着文件的,我在前端选择成功是“的信息张贴“编辑我的handler.php文件。这是一个错误的解释?
无论哪种方式,有人可以给我一个答案我的问题?或至少指向可能有我的答案的资源?似乎有许多类似的问题,但我没有看到有一个确切的答案。
我在过去曾经使用iframe来处理这种事情,但这看起来像一个非常黑客的方法,并且我希望在将来能够灵活地使用ajax来处理这类任务。
帮助表示赞赏。
这里;请访问http://php.net/manual/en/function.error-reporting.php,然后将其应用于您的代码。还请检查您的控制台。 –
你设置了一个错误的内容类型,这意味着jquery不会发送任何类型。如果PHP没有看到适当的类型进来,它将不会假设表单/文件提交,并且不会解析/填充$ _POST/$ _ FILES的输入。您还将processData设置为false,因此您传递的对象将被** NOT **处理为正常提交。 –
检查文件上传的内容类型。那里有一个错误。之后,您可以通过浏览器控制台检查Ajax调用是否正确。如果它给出了错误,那么你应该检查。 –