账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    浏览器上传文件是否以字节为单位进行传输的(序列化?)?
    65
    0

    因为文件无法保证能够被8位整除,所以当文件上传的input后接着文本上传,会导致文本读取错误吧?
    比如

    <form action="reg" method="post" enctype="multipart/form-data">
        <input type="text" name="username" id="username" />
        <input type="file" accept="audio/mp4, video/mp4" name="updateFile" />
        <input type="text" name="sex" id="sex" />
        <input type="submit /">
    </form>

    当文件不能被8整除,那么后面的文字就乱码了。
    如果浏览器会自动将其填补为8的倍数,那就不会影响后面的问题,但是文件就不是原来的文件了,可能会增加了1字节,对吗?
    所以浏览器到底会不会对文件进行填补呢?也就是是否以字节为单位进行传输?有出处吗?

    补充:有答案说了,文件都是以字节为单位的。
    关于序列化,既然文件是以字节为单位,那浏览器端的文件序列化又有什么意义呢?

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • Favorite.莉 普通会员 1楼

      在浏览器中上传文件时,文件通常以二进制数据(通常为字节)进行传输,这是由于浏览器内部的传输机制和数据编码方式决定的。当浏览器将文件上传到服务器时,服务器通常会将文件转换为HTTP响应,其中包含了文件的字节数据。这个过程被称为文件传输(File Upload)。

      以下是一些常见的浏览器文件上传方式及其字节数据传输方式:

      1. 文件直接上传
      2. 当用户在浏览器中选择文件后,选择“上传”按钮,服务器收到这个请求,服务器将文件从本地磁盘读取到内存或服务器硬盘,并将其转换为二进制数据。
      3. 服务器将文件的二进制数据(通常以二进制文件名)写入一个HTTP响应的Content-Disposition属性中,指定文件的类型为attachment; filename=filename,其中filename是文件名。例如,file.jpg表示一个名为file.jpg的图片文件。
      4. 服务器将响应发送到客户端,客户端接收到这个响应后,将下载到本地磁盘,然后进行文件的解码和读取,完成文件的上传。

      5. HTTP POST请求

      6. 当用户选择文件后,使用POST方法上传文件到服务器。在HTML文件中,用户可以使用<input type="file" accept="image/*"><input type="file" accept="application/octet-stream">来选择文件,这些元素通常位于<input>元素中,如<input type="file">
      7. 在服务器端,服务器接收请求后,读取HTTP响应的Content-Type属性,确认文件类型是application/octet-streamapplication/pdf,然后读取响应中的二进制数据。
      8. 服务器将文件的数据转换为二进制数据,并将文件数据写入服务器的数据库、文件系统或存储服务中。
      9. 服务器返回一个HTTP响应,包括响应状态码(例如200代表成功)、响应头(例如Content-Disposition)和响应体,其中包含文件的数据。

      10. HTTP PUT请求

      11. 当用户选择文件后,使用PUT方法上传文件到服务器。在HTML文件中,用户可以使用<input type="file"><input type="file" accept="application/octet-stream">来选择文件,这些元素通常位于<input>元素中,如<input type="file">
      12. 在服务器端,服务器接收请求后,读取HTTP响应的Content-Type属性,确认文件类型是application/octet-streamapplication/pdf,然后读取响应中的二进制数据。
      13. 服务器将文件的数据转换为二进制数据,并将文件数据写入服务器的数据库、文件系统或存储服务中。
      14. 服务器返回一个HTTP响应,包括响应状态码(例如200代表成功)、响应头(例如Content-Disposition)和响应体,其中包含文件的数据。

      无论使用哪种方法,文件上传通常都是以字节为单位进行传输的。在文件上传过程中,服务器将文件数据读取并编码为二进制数据,然后将这个数据写入HTTP响应中。客户端接收到这个响应后,可以解析并解码文件数据,完成文件的上传。例如,客户端可以读取HTTP响应的Content-Disposition属性中的filename属性,并读取上传文件的Content-Type属性中的filename,然后使用相应的文件读取方法来加载上传文件的数据。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部