我希望在用户使用$ .ajax在输入文件中选择文件时异步上传文件。但是接收调用返回索引的PHP未定义。jQuery代码是下一个:
$("#urlimatge").change(function(){ var filename = $("#urlimatge").val(); $.ajax({ type: "POST", url: "utils/uploadtempimg.php", enctype: 'multipart/form-data', data: {'urlimatge' : filename }, success: function(response){ alert(response); } }); });
以及调用该调用的php:
$image = new gestorimatges(); $target_path = $image->uploadTemp($_FILES['urlimatge']['name'],$_FILES['urlimatge']['tmp_name']);
谢谢
您无法使用AJAX上传文件,但可以使用,iframe因此不必刷新当前页面。
iframe
很多人都对插件束手无策,但您可以轻松完成此操作,并具有AJAX请求的所有功能。
不必使用AJAX函数,而是将表单提交到iframe具有load事件处理程序的隐藏文件中,以便在提交表单时,您实际上具有服务器响应(iframe加载后的HTML)的回调函数。
load
例:
HTML-
<form action="..." method="post" encrypt="application/x-www-form-urlencoded" target="workFrame" > <input type="file" name="file" /> <input type="submit" /> </form> <iframe id="workFrame" src="about:blank" style="display:none;"></iframe>
JS-
$(function () { $('form').on('submit', function () { //check if the form submission is valid, if so just let it submit //otherwise you could call `return false;` to stop the submission }); $('#workFrame').on('load', function () { //get the response from the server var response = $(this).contents().find('body').html(); //you can now access the server response in the `response` variable //this is the same as the success callback for a jQuery AJAX request }); });