我正在创建一个可以聊聊它的小网站。目前,人们只能发短信,我想打开文件发送者以及发送图像,视频,gif(s)。
我一路上遇到了一些问题,但到目前为止还没有其他人的支持。但是,我现在非常需要它。
通过使用FormData
,Ajax和jQuery,我能够将客户端发送到PHP服务器的实时图像。我面临的问题是:
未捕获的TypeError:无法读取属性'文件'为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];
任何帮助将不胜感激。 谢谢你的时间。
答案 0 :(得分:2)
原生javascript document.getElementById()需要&#39; id&#39;作为没有jQuery选择器#
的字符串
所以删除#:
var name = document.getElementById('browse_'+chat_id);
或使用jQuery selector方法:
var name=$('#browse_'+chat_id);