Laravel 异步上传文件
Laravel uploading files asynchronously
我通过调度作业相当熟悉 Laravel 队列和 运行 异步逻辑 Laravel。
我正在构建的网站需要处理大型视频文件,所以我需要这些上传是异步的,用户现在需要等待 5 到 10 分钟才能上传他们的文件。
这可能吗?这将如何在 Laravel 队列中实现?什么在请求中发送到服务器?
我在 Google 上找不到任何解决此问题的内容,所以我只是在寻找一些一般性指导。
理想情况是用户选择他们的文件,单击上传,然后安排一个作业来上传文件并在完成后通过电子邮件通知用户。
谢谢!
对于要上传的文件,启动上传的页面必须在上传期间保持打开状态。这本身是有道理的,因为否则,如果用户选择关闭正在上传的页面,您基本上可以 "steal" 上传文件,而不管用户的操作如何。
此处唯一实用的方法是允许用户 select 文件并使用 XHR 请求上传它们,类似于:
var payload = new FormData();
payload.append('file', document.getElementById('fileInput'));
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload', true);
xhr.addEventListener('load', function (e) {
// Do stuff when upload is complete
});
xhr.send(payload);
异步上传文件,允许用户在等待上传完成的同时在同一页面内执行其他操作(例如填写上传所需的其他数据)。
我通过调度作业相当熟悉 Laravel 队列和 运行 异步逻辑 Laravel。
我正在构建的网站需要处理大型视频文件,所以我需要这些上传是异步的,用户现在需要等待 5 到 10 分钟才能上传他们的文件。
这可能吗?这将如何在 Laravel 队列中实现?什么在请求中发送到服务器?
我在 Google 上找不到任何解决此问题的内容,所以我只是在寻找一些一般性指导。
理想情况是用户选择他们的文件,单击上传,然后安排一个作业来上传文件并在完成后通过电子邮件通知用户。
谢谢!
对于要上传的文件,启动上传的页面必须在上传期间保持打开状态。这本身是有道理的,因为否则,如果用户选择关闭正在上传的页面,您基本上可以 "steal" 上传文件,而不管用户的操作如何。
此处唯一实用的方法是允许用户 select 文件并使用 XHR 请求上传它们,类似于:
var payload = new FormData();
payload.append('file', document.getElementById('fileInput'));
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload', true);
xhr.addEventListener('load', function (e) {
// Do stuff when upload is complete
});
xhr.send(payload);
异步上传文件,允许用户在等待上传完成的同时在同一页面内执行其他操作(例如填写上传所需的其他数据)。