javascript - 使用ajax上传文件

标签 javascript php ajax file upload

我一直在寻找我能在这里找到的所有答案,但似乎没有一个对我有用,不知道为什么。

我正在尝试使用ajax上传文件,但该文件永远不会到达PHP中的$_FILES数组,我只将其发送到$_POST数组,但它不会让我获得文件的名称或大小文件。我已经尝试了这里回答的每一个解决方案,但似乎没有一个解决方案可以解决我的问题,我不确定为什么,我认为有些东西我没有看到。如果有人能帮助我那就太好了。

HTML 代码

<form name='formuploadgraphic'>
     <input type='file' name='archivo1' id='archivo1' onchange='subegraphic()'>
</form>

JS/AJAX 代码

function subegraphic()
{
    var formData = new FormData();
    formData.append("archivo1", $("#formuploadgraphic")[0]);

    $.ajax({
        url: "subegraphic.php",
        type: "post",
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
        async: true
    })
     .done(
         function(data)
         {
             alert(data);
         }
     );
}

PHP 代码

<?php
    $upload_folder ='graphics';
    $nombre_archivo = $_FILES['archivo1']['name'];
    $tipo_archivo = $_FILES['archivo1']['type'];
    $tamano_archivo = $_FILES['archivo1']['size'];
    $tmp_archivo = $_FILES['archivo1']['tmp_name'];
    $extension = pathinfo($_FILES['archivo1']['name'], PATHINFO_EXTENSION);
    $archivador = $upload_folder . '/' . $nombre_archivo;
    echo $nombre_archivo;
?>

如果我使用该代码,这是来自 php 的回复:


通知:未定义索引:archivo1,位于C:\xampp\htdocs\airpost\home\subegraphic.php4

通知:未定义索引:archivo1,位于C:\xampp\htdocs\airpost\home\subegraphic.php5

通知:未定义索引:archivo1,位于C:\xampp\htdocs\airpost\home\subegraphic.php6

通知:未定义索引:archivo1,位于C:\xampp\htdocs\airpost\home\subegraphic.php7

通知:未定义索引:archivo1,位于C:\xampp\htdocs\airpost\home\subegraphic.php,第8
行”

如果有人能说出我的代码有什么问题,那就太好了。提前谢谢。

PS:上传文件在 php.ini 中处于开启状态

最佳答案

从您发布的代码片段中,您的 jQuery 选择器指向一个未定义元素

改变

formData.append("archivo1", $("#formuploadgraphic")[0]);

formData.append("archivo1", $("#archivo1").prop('files')[0]);

关于javascript - 使用ajax上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43578176/

相关文章:

javascript - reducer 更新了 apposArrayProp 但 Redux 没有更新我的 View

javascript - 如何使用 Electron 本地快捷方式执行 'cut'

javascript - 在 ajax 加载元素后初始化 bootstrap popover

php - 文件上传返回 "undefined index"错误

php - 使用php连接远程mysql数据库的问题

php - 使用 jQuery ajax 将 Javascript 数组转换为 php

javascript - 在 Restangular post 请求中使用单一和全部链接

javascript - Chrome 富通知是否已弃用

javascript - 用 Babel 扩展 MediaSource ——如何正确调用 super()?

php - 连接后保持 PHP 服务器套接字处于事件状态