【问题标题】:Jquery Ajax PHP File uploadJquery Ajax PHP 文件上传
【发布时间】:2014-05-07 21:29:38
【问题描述】:

您好,我无法在view.php 中获取 PHP 文件值,而通常可以在 view.php 中找到它。请帮帮我。提前致谢。

这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<title>Untitled Document</title>
<script type="text/javascript">
$( document ).ready(function() {
$('#uploadBtn').click(function() {
$.ajax( {
type: 'POST',
contentType:attr( "enctype", "multipart/form-data" ),
url: 'view.php',
data: $('myform').serialize() ,
success: function(data){
alert(data);
    }
});
});
});
</script>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="view.php" name="myform">
<input id="f" type="file"  value=""  name="myfile"/>
<input type="button" value="try" id="uploadBtn" />
</form>
</body>
</html>

【问题讨论】:

  • 听起来像是文件路径的问题,你能发布确切的控制台错误吗?
  • 你好 Chevi,谢谢你的回答,不,路径没问题,因为我已经用普通的 ajax 检查了它,它现在两个文件都驻留在同一个家跨度>
  • 发布您遇到的错误,或任何真正的错误。使用您发布的代码,我怀疑您会得到很多帮助
  • 这里是“ReferenceError: attr is not defined”

标签: jquery ajax file upload


【解决方案1】:

您遇到的错误是由于尝试使用“attr”,就好像它是一个变量一样。您不必设置 AJAX 请求的 enctype,因为它仅指表单。您可以设置适当的Content-type(到"multipart/form-data"


除此之外,您正在尝试使用 AJAX 上传文件,这是 总是可能的。参考this question

引用该问题的已接受答案:

XHR2 支持通过 AJAX 上传文件。例如。通过 FormData 对象,但不幸的是,并非所有/旧浏览器都支持它。

我建议你尝试一个 AJAX 文件上传插件,它们通常能很好地完成工作,并且会确保跨浏览器的兼容性。

【讨论】:

  • 谢谢兄弟,顺便说一句,你推荐任何特定的插件吗?这很容易实现。
  • 我没有任何建议,快速谷歌搜索会发现很多插件。
  • 是的,有很多,但根据我的要求,最好自己创建,插件不是我当前代码的套件。
  • 好吧,你可以使用 XHR2 和旧浏览器的后备,但我会做一个正常的上传(没有 AJAX)并用 iframe 模拟这种效果。您可以在 JS 中检测 iframe 何时加载(上传完成)并对该事件做出反应。
  • 好的,谢谢,但我也需要更新浏览器的全面支持。我稍微实现了代码,这次它正在接收结果但还没有 FILES 值。说未定义索引
猜你喜欢
  • 2017-08-25
  • 2012-10-29
相关资源
最近更新 更多