fzsatti / zotyos-ajax-file-uploader
此包的最新版本(1.0.1)没有可用的许可信息。
分别上传您的文件,然后将上传文件的ID附加到您的表单中
1.0.1
2018-01-09 07:10 UTC
Requires
- ramsey/uuid: ^3.0
This package is auto-updated.
Last update: 2024-09-13 02:13:28 UTC
README
#Ajax文件上传器
本包为您提供更便捷的文件上传管理方式。
如果您正在构建一个普通网站(AJAX仅在少数情况下使用),处理表单中的文件上传与其他输入相比有点棘手。
问题1。
如果验证失败,通常您会将用户重定向回表单,以便他可以更正数据后再次提交。这意味着用户每次都必须在他的文件系统中找到那个文件。
问题2。
另一件棘手的事情是,当您想编辑一个包含文件的资源时。如果用户将文件输入留空,您必须实现一些逻辑来决定用户是想删除文件还是保留它不变。
本包为此类情况提供了解决方案。
工作原理
提交您的表单需要先请求上传文件
- 首先,您在一个单独的表单中使用AJAX请求上传文件。如果上传成功,响应将包含文件的ID和URL(例如,如果您想在IE7中预览)
- 然后,您只需将文件的ID附加到您的原始表单(可能在隐藏的输入中)
- 用户提交您的原始表单,然后您处理表单。文件已位于服务器上,因此您只需处理其ID。
是的,在您的数据库中,您只需保存文件的ID(列应为40个字符长的字符串)。文件的路径、URL和其他描述性信息一旦您实例化了Zotyo\AjaxFileUploader\File对象即可访问。来自客户端机器的文件详情也可以访问。每次上传文件时,还会生成一个.json文件来存储客户端信息。默认情况下,这些.json文件不会通过您的web服务器访问。
优点
- 您不必从头创建自己的文件上传
- 它可以作为任何资源文件上传的重用
缺点
- 您需要一点JavaScript
验证 file-uploaded-in-current-session 包含在包中。使用此验证来防止黑客更改文件的ID。
安装
将以下行添加到您的composer.json中
"fzsatti/zsotyos-ajax-file-uploader": "dev-master"
下载包后,将PackageServiceProvider添加到config/app.php的providers数组中
Fzsatti\ZotyosAjaxFileUploader\PackageServiceProvider::class
最后,您应该发布包的配置和资源。
php artisan vendor:publish --provider="Fzsatti\ZotyosAjaxFileUploader\PackageServiceProvider"
这将创建一个file-uploader.php文件在您的配置目录中。
待办事项
- 多文件上传
- 私有文件。这些文件将有一些前缀,.htaccess文件会阻止这些文件。通过框架提供此类文件。
- 欢迎提出建议:)