如何使用 Laravel 文件系统获得 FTP 上传百分比
How to get FTP upload percentage with Laravel File System
所以我有像 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
}
所以我有像 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
}