如何使用Laravel文件系统获取FTP上传百分比



所以我有类似wetransfer.com的应用程序。

所以我想看看有多少文件字节被上传到ftp磁盘

下面是一个示例代码:

Storage::disk('ftp')->put('/path/', $file)

方案:

(client file) -> (ftp)

有没有办法得到服务器的上传百分比以及上传到FTP的字节数。

我使用React作为前端侧。这是我的代码

const onDrop = useCallback(acceptedFiles => {
setShowUpload(false);
const uploading = acceptedFiles.map(file => {
const formData = new FormData();
formData.append("cloudesk_upload[]", file);
const xhr = new XMLHttpRequest();
xhr.upload.onprogress = event => {
const percentage = parseInt((event.loaded / event.total) * 100);
setUploadPercentages(percentage);
};
xhr.onreadystatechange = () => {
if (xhr.readyState !== 4) return;
if (xhr.status !== 200) {
console.log('error'); // Handle error here
}
console.log('success'); // Handle success here
};
setTimeout(() => {
xhr.open('POST', `${window.API_URL}/upload`, true);
xhr.send(formData);
}, 3000)
});
}, [])

但这并没有像我预期的那样奏效

我认为这样做的方法是:

(client) -> (temp file on the first server) -> (ftp)然后获取本地文件和Ftp文件之间的字节。

有什么简单而不肮脏的方法可以做到这一点吗?

了解您的问题后,您可以比较上传的文件和存储在ftp服务器中的文件的大小。

此功能用于演示。

public function store(Request $request)
{
$file= Input::file('file');
$clientFileSize=$request->file('file')->getSize();
Storage::disk('ftp')->put('/path/', $file);
$ftpFileSize=Storage::disk('ftp')->size('/path/filename');
$comparesize=$clientFileSize-$ftpFileSize

}

最新更新