Uncaught TypeError: Cannot read property 'files' of null of element

Uncaught TypeError: Cannot read property 'files' of null of element

我正在创建一个可以聊天的小网站。目前只能发送短信,我想打开一个文件发送器,也可以发送图片、视频、gif。

一路上我遇到了一些问题,但到目前为止,没有其他人的支持就得到了一切。不过,我现在很需要它。

通过使用 FormData、Ajax 和 jQuery,我可以将实时图像从客户端发送到 PHP 服务器。我面临的问题是:

Uncaught TypeError: Cannot read property 'files' of null

尝试将文件附加到 formData 时。看看:

function opencraze() {
    $(".browse_send_file").change(function () {
        var chat_id = "123";
        var formData = new FormData();

        formData.append("chat_id", chat_id);

        var name = document.getElementById('#browse_' + chat_id);
        var filemsg = name.files[0];
        formData.append("userfile", filemsg);
    });
}

HTML:

<div class="chat_wcom" style="width: 25%;">
    <label for="browse_123" class="material-icons"></label>
    <input type="file" class="browse_send_file" id="browse_123" name="browse_send_file" style="display: none">
    <input maxlength="140" type="text" id="input_123" class="comin" placeholder="My message..." name="sendmsg" onkeypress="g(event,123)" autocapitalize="off" autocorrect="off" style="width: auto;">
    <input class="hidden_index" type="text" value="123" name="chat_index">
</div>

一切之前发生的事情是,当用户点击一个div时,上面的这个HTML就会生成,一旦生成,它就会调用opencraze()函数。现在,如果按下聊天标签,就会选择文件并激活 .change() jQuery 功能。错误在以下行:

var filemsg = name.files[0];

如有任何帮助,我们将不胜感激。 谢谢你的时间。

原生 javascript document.getElementById() 期望 'id' 为没有 jQuery 选择器 #.
的字符串 所以删除#:

var name = document.getElementById('browse_'+chat_id);

或使用jQuery selector方法:

var name=$('#browse_'+chat_id);