【问题标题】:Send post request for image uploading via JavaScript [duplicate]通过 JavaScript 发送图片上传的发布请求 [重复]
【发布时间】:2014-05-26 22:57:43
【问题描述】:

我有一个 HTML 表单,我正在尝试通过它上传图片。

<form id="imageform" method="post" enctype="multipart/form-data" action='upload.php'>
    Upload image <input type="file" name="file" id="file" />
</form>

<div id='preview'>
</div>

我想用 JavaScript 上传运行upload.php,这样页面就不用刷新了。然后我想在#preview 中显示输出。

$(document).ready(function() { 
    $('#file').live('change', function() {
        $("#preview").html('');
        $("#preview").html('Uploading...');
        $.post("upload.php",$("#imageform").serialize(), function(data){
            $("#preview").html(data);
        });
    });
}); 

但是,我在 div 中遇到了许多类似的错误。我知道数据没有被发送,但我该如何解决呢?

Notice: Undefined index: file in /path/upload.php on line 14

我在 Google 上搜索了一些东西,但我收到了同样的问题。

【问题讨论】:

  • 名为“file”的索引不存在,这就是通知所说的,很清楚:-),尝试 print_r $_REQUEST 数组并查看其中的索引,例如
  • @Ma'moonAl-Akash 我理解那部分。我想知道如何更改我的 JavaScript 以正确地将图像数据发送到 PHP 文件。

标签: javascript php jquery post


【解决方案1】:

您不能通过 AJAX 发送文件。无论如何,以这种方式。您需要使用新的 HTML5 方法:例如http://blog.teamtreehouse.com/uploading-files-ajax 或使用某种利用 iframe hack 的插件:例如https://github.com/blueimp/jQuery-File-Upload

【讨论】:

    【解决方案2】:

    您需要关闭 PHP 中的错误报告或修复您在 upload.php 中的错误。 PHP报错:http://www.php.net/manual/en/function.error-reporting.php

    例如

    error_reporting(0);
    

    【讨论】:

    • 我不会真的“隐藏”错误,这只是“隐藏”通知、错误和警告,而不是“修复”它们!
    • 是的,但是图像本身并未上传。 PHP 文件工作正常,我知道,使用 JavaScript 将数据传递到 PHP 文件是一个问题。
    • 然后阅读如何使用 AJAX 发送文件 - stackoverflow.com/questions/166221/…
    猜你喜欢
    • 2019-11-11
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2018-04-12
    相关资源
    最近更新 更多