我正在开发一个实时聊天应用程序,我想让用户上传自己的图像作为头像使用。当用户上传图片时,后端显示如下URL: file:///C:/fakepath/016CF4E2-65C6-46E1-8C5C-415E74970948.jpeg。然而,当我登录应用程序并检查控制台时,我看到以下消息:不允许加载本地资源:file:///C:/fakepath/016CF4E2-65C6-46E1-8C5C-415E74970948.jpeg。我在测试,然后我决定把输入类型从文件改为URL,然后我粘贴了一张谷歌图片的随机地址,然后当我把它加载回应用程序时,图片就消失了。是否有任何方法允许用户上传的图像显示?我正在使用流聊天API,如果这也有帮助,以及Heroku和nodejs。
保持输入为type="file"
。用户正在从磁盘中选择一个文件。它不会有URL
fakepath
来自尝试将文件输入视为字符串而不是文件。如果你正在使用JavaScript,不要使用字段的value
属性,因为它只对信息和调试有用。如果您正在提交一个表单,那么它需要能够处理文件输入(而默认的enctype
不这样做)。
上传图像到服务器。如何做到这一点取决于你的方法,如果是一个表单,那么enctype
属性需要设置为multipart/form-data,如果是Ajax,那么你应该从一个FormData
对象开始。
在服务器端,解析请求(具体取决于您的服务器端环境)并将文件保存在某处。
为文件提供一个URL(要么将其保存到提供静态文件的地方,要么让另一个服务器端进程根据需要读取该文件(从您保存它的地方))。