通过ajax上传图像时出现问题

时间:2012-11-29 17:42:50

标签: javascript jquery ajax

如果标题不够具有描述性,请注意!

想法是有一个div弹出窗口,允许用户输入他们的反馈并可能提交截图。

这是页面内的javascript(通过ajax调用div)。

的Javascript

$("#submitFeedback").click(function(){
  //Check if the form is valid
  if($("#form").valid()){
    $("#form").hide(); //Hide the form
    $("#feedbackReport").append("<h2 style='color:white'>Submitting!</h2><hr />" +
      "<div style='text-align: center'><img src='images/loader.gif' /></div>");//Display loading spinner
    $.ajax({  
      type: "POST",  
      url: "ajax/submit_feedback.php",
      cache: false,
      data: $("#form").serialize(),//serialize form for submission
      success: function(data) {
        $("#feedbackReport").empty();//Clear form after submission
        $("#feedbackReport").append("<h2>Thank you!</h2><span id='close'>&#10006;</span><hr />"
          +"Your feedback has been submitted successfully!"
          +"<br /><br /><span id='cancel'>Close</span>");
        $("#cancel,#close").click(function(){
          $("#feedbackReport").parent().hide();
        });
      }
    });
    return false;//Prevent page from changing
  }
});

现在,如果将我的浏览器指向实际的ajax页面(ajax / feedback.php)并提交图像,它就可以了!当我从index.php运行它并通过ajax调用反馈窗口时,它不会提交我的图片,只提交文本。

我知道我的submit_feedback.php页面工作得很好,因为这个,我只是不知道为什么它不能正确地发布图像。

非常感谢任何提示或帮助!

2 个答案:

答案 0 :(得分:2)

Ajax无法进行文件上传。您必须使用不同的内容,例如https://github.com/valums/file-uploader

答案 1 :(得分:-1)

Ajax不允许文件上传,但巧妙的技巧是使用保存文件上传表单的iframe,并在选择文件时自动提交。

这样只会重定向iframe,并给它带来ajax感觉。

Read more here