房管局备案查询网站营销型网站建设测验题
2026/3/31 0:06:18 网站建设 项目流程
房管局备案查询网站,营销型网站建设测验题,做网站和软件的团队,网站开发毕设答辩文件上传的是根据 http 协议的规范和定义#xff0c;完成请求消息体的封装和消息体的解析#xff0c;然后将二进制内容保存到文件。在上传一个文件时#xff0c;需要把 form 标签的enctype设置为multipart/form-data#xff0c;同时method必须为post方法。multipart/form-d…文件上传的是根据 http 协议的规范和定义完成请求消息体的封装和消息体的解析然后将二进制内容保存到文件。在上传一个文件时需要把 form 标签的enctype设置为multipart/form-data同时method必须为post方法。multipart/form-data结构展开代码语言Bash自动换行AI代码解释# 请求标头 Content-Type: multipart/form-data; boundary----webKitFormBoundaryDCntfiXcSkPhS4PN origin: https://convertio.co referer: https://convertio.co/ # From data ----WebKitFormBoundaryDCntfiXcSkPhS4PN content-Disposition: form-data; namef1; filenametest.gifContent-Type: image/gif ----WebKitFormBoundaryDCntfiXcSkPhS4PN1请求头注意这里的请求头并不是指http headerContent-Type: multipart/form-data; boundary----WebKitFormBoundaryDCntfiXcSkPhS4PN 表示本次请求要上传文件其中 boundary 表示分隔符如果要上传多个表单项就要使用 boundary 分割每个表单项由----XXX 开始以----XXX 结尾。2消息体- Form Data 部分每一个表单项又由Content-Type和Content-Disposition组成。Content-Disposition: form-data 为固定值表示一个表单元素name 表示表单元素的 名称回车换行后面就是name的值如果是上传文件就是文件的二进制内容。Content-Type表示当前的内容的 MIME 类型是图片还是文本还是二进制数据。1.2、服务器解析客户端发送请求到服务器后服务器会收到请求的消息体然后对消息体进行解析解析出哪是普通表单哪些是附件。二、文件上传类型2.1、秒传1概念通俗的说把要上传的东西上传服务器会先做MD5校验如果服务器上有一样的东西它就直接给个新地址引用计数加一其实下载的都是服务器上的同一个文件想要不秒传其实只要让MD5改变就是对文件本身做一下修改改名字不行例如一个文本文件多加几个字MD5就变了就不会秒传了。2秒传核心逻辑利用redis的set方法存放文件上传状态其中key为文件上传的md5value为是否上传完成的标志位。当标志位true为上传已经完成此时如果有相同文件上传则进入秒传逻辑。如果标志位为false则说明还没上传完成此时需要在调用set的方法保存块号文件记录的路径其中key为上传文件md5加一个固定前缀value为块号文件记录路径。2.2、分片上传1概念分片上传就是将所要上传的文件按照一定的大小将整个文件分隔成多个数据块称之为Part来进行分别上传上传完之后再由服务端对所有上传的文件进行汇总整合成原始的文件。2分片上传的场景大文件上传。网络环境环境不好存在需要重传风险的场景。2.3、大文件上传大文件上传一般采用分片上传的方式这样可以提高文件上传的速度前端拿到文件流后进行分片然后与后端进行通讯传输一般还会结合断点继传这时后端一般提供三个接口第一个接口获取已经上传的分片信息。第二个接口将前端分片文件进行传输。第三个接口是将所有分片上传完成后告诉后端进行文件合并。2.4、断点续传1概念断点续传是在下载或上传时将下载或上传任务一个文件或一个压缩包人为的划分为几个部分每一个部分采用一个线程进行上传或下载如果碰到网络故障可以从已经上传或下载的部分开始继续上传或者下载未完成的部分而没有必要从头开始上传或者下载。2应用场景断点续传可以看成是分片上传的一个衍生因此可以使用分片上传的场景都可以使用断点续传。3实现断点续传的核心逻辑在分片上传的过程中如果因为系统崩溃或者网络中断等异常因素导致上传中断这时候客户端需要记录上传的进度。在之后支持再次上传时可以继续从上次上传中断的地方进行继续上传。为了避免客户端在上传之后的进度数据被删除而导致重新开始从头上传的问题服务端也可以提供相应的接口便于客户端对已经上传的分片数据进行查询从而使客户端知道已经上传的分片数据从而从下一个分片数据开始继续上传。4实现流程步骤方案一检测分片的方式将需要上传的文件按照一定的分割规则分割成相同大小的数据块初始化一个分片上传任务返回本次分片上传唯一标识按照一定的策略串行或并行发送各个分片数据块发送完成后服务端根据判断数据上传是否完整如果完整则进行数据块合成得到原始文件。方案二检测文件大小的方式前端客户端需要根据固定大小对文件进行分片请求后端服务端时要带上分片序号和大小。服务端创建conf文件用来记录分块位置conf文件长度为总分片数每上传一个分块即向conf文件中写入一个127那么没上传的位置就是默认的0,已上传的就是Byte.MAX_VALUE 127这步是实现断点续传和秒传的核心步骤。服务器按照请求数据中给的分片序号和每片分块大小分片大小是固定且一样的算出开始位置与读取到的文件片段数据写入文件。三、断点下载原理获取服务器文件的大小发起下载请求包含下载范围。比如总文件大小为1024已经下载了238要下载的范围就是239~1024服务器按照请求的范围发送给客户端。获取文件大小如果使用curl开源库可以通过curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD,size)获取文件的大小。四、多线程下载逻辑先获取文件大小。根据线程数量划分每个线程要下载的文件长度不能整除则采用向上取整。每个线程下载对应的区域块。顺序合并文件写入时候加锁lseek到对应位置然后写入数据。一般顺序合并文件是要先等前面序号的下载完后面序号比前面序号的先下载完的才会整合进来。多线程下载要不要临时文件依赖于业务要求如果是大文件的最好有临时文件减少内存占用。五、总结本文全面介绍了文件上传下载的原理和实现逻辑。首先学习了文件上传的基本原理包括HTTP请求格式和服务器解析过程。然后深入探讨了不同类型的文件上传如秒传、分片上传、大文件上传和断点续传。对于文件下载解释了断点下载的原理并介绍了多线程下载的逻辑。通过本文的学习对文件上传下载有了更深入的了解。了解了文件上传的工作原理以及不同类型的文件上传方式的特点和应用场景。对于文件下载学习了断点下载的原理和多线程下载的逻辑。这些知识可以帮助更好地应用和优化文件传输功能提高系统性能和用户体验。.dongchedi.com/article/7594153502142890521www.dongchedi.com/article/7594151998267032089www.dongchedi.com/article/7594154986410738201www.dongchedi.com/article/7594153635873882649www.dongchedi.com/article/7594154845427827225www.dongchedi.com/article/7594151436733514264www.dongchedi.com/article/7594148355094708761www.dongchedi.com/article/7594143059890602558www.dongchedi.com/article/7594142952818426392www.dongchedi.com/article/7594142964432323096www.dongchedi.com/article/7594143059890209342www.dongchedi.com/article/7594143001568707134www.dongchedi.com/article/7594142838871376409www.dongchedi.com/article/7594113284840669758www.dongchedi.com/article/7594110260978238014www.dongchedi.com/article/7594110220667028030www.dongchedi.com/article/7594109748606665278www.dongchedi.com/article/7594110099447513624www.dongchedi.com/article/7594108451488334398www.dongchedi.com/article/7594106177244561945www.dongchedi.com/article/7594103370105979417www.dongchedi.com/article/7594199071733596734www.dongchedi.com/article/7594198145211761176www.dongchedi.com/article/7594196964511154713www.dongchedi.com/article/7594198239285494297www.dongchedi.com/article/7594197322151068222www.dongchedi.com/article/7594198145211925016www.dongchedi.com/article/7594195638192243225www.dongchedi.com/article/7594198041578455614www.dongchedi.com/article/7594179233010893336www.dongchedi.com/article/7594179607033922110www.dongchedi.com/article/7594177906826625560www.dongchedi.com/article/7594177530207289918www.dongchedi.com/article/7594176033486864958www.dongchedi.com/article/7594174514142462488www.dongchedi.com/article/7594175199944213017www.dongchedi.com/article/7594173003894964798www.dongchedi.com/article/7594172411499954713www.dongchedi.com/article/7594172274706514456www.dongchedi.com/article/7594171609930383897www.dongchedi.com/article/7594171501943931416www.dongchedi.com/article/7594171895055286808www.dongchedi.com/article/7594169899916853785www.dongchedi.com/article/7594168856931762712www.dongchedi.com/article/7594154845427630617www.dongchedi.com/article/7594152696526504510www.dongchedi.com/article/7594154096370991678www.dongchedi.com/article/7594149478186533401www.dongchedi.com/article/7594143476796015128www.dongchedi.com/article/7594143420428370457www.dongchedi.com/article/7594143309313147417www.dongchedi.com/article/7594143309313081881www.dongchedi.com/article/7594143555656942104www.dongchedi.com/article/7594143559859765822www.dongchedi.com/article/7594112718668349977www.dongchedi.com/article/7594111610630013464www.dongchedi.com/article/7594112414933795353www.dongchedi.com/article/7594110167684661784www.dongchedi.com/article/7594108789133951550www.dongchedi.com/article/7594110242670101016www.dongchedi.com/article/7594108398888010302www.dongchedi.com/article/7594198471734198809www.dongchedi.com/article/7594199227367309886www.dongchedi.com/article/7594196987835466264www.dongchedi.com/article/7594196535337353752www.dongchedi.com/article/7594197773559185944www.dongchedi.com/article/7594196903693156888www.dongchedi.com/article/7594197731099771416www.dongchedi.com/article/7594196461773406745

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询