Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

想问下关于UploadController里面的一个代码的问题 #108

Open
DaybreakY opened this issue Aug 8, 2022 · 4 comments
Open

想问下关于UploadController里面的一个代码的问题 #108

DaybreakY opened this issue Aug 8, 2022 · 4 comments

Comments

@DaybreakY
Copy link

     // validate the data in header file to avoid the errors when network issue occurs
        if ( (int)($partialResource->chunkIndex) !== (int)$chunkIndex - 1 ) {
            return Responser::returnResult($result);
        }
   就关于源码里面这段代码的情况,没太能理解这个判断的意思。所以就是实例化类中partialResource里面的chunkIndex和前端接受的index不一致的时候,是不需要报错的吗?
@peinhu
Copy link
Owner

peinhu commented Aug 8, 2022

// validate the data in header file to avoid the errors when network issue occurs
// 验证header文件中的数据以防止网络问题发生时报错
这个应该是断线续传时防止出错的,网络不好时可能会发生上传成功但返回失败,此时实际已经上传成功,当网络恢复时,浏览器又会自动重传这部分内容,如果不阻止会出现问题,正常情况下不会进到这里。

@DaybreakY
Copy link
Author

所以就是说明$partialResource->chunkIndex这块的计算是始终对的,但是可能由于网络的问题,前端传过来的index可能会有重复?所以通过这块来避免重传。所以一般来说是不会出现$partialResource->chunkIndex<index的情况,只是会出现$partialResource->chunkIndex>index。是这么理解吗?

@peinhu
Copy link
Owner

peinhu commented Aug 8, 2022

正常情况下不会出问题,$partialResource->chunkIndex和$chunkIndex - 1是相等的,当不相等的时候,说明前后端数据不一致了,需要采取措施,目前这个仅用于网络不好的时候避免重复上传文件块。

@peinhu
Copy link
Owner

peinhu commented Aug 8, 2022

你可以对比,删掉这部分代码和保留这部分代码,在上传文件网络中断后恢复情况下的区别。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants