fzsatti/zotyos-ajax-file-uploader

此包的最新版本(1.0.1)没有可用的许可信息。

分别上传您的文件,然后将上传文件的ID附加到您的表单中

1.0.1 2018-01-09 07:10 UTC

This package is auto-updated.

Last update: 2024-09-13 02:13:28 UTC


README

#Ajax文件上传器

本包为您提供更便捷的文件上传管理方式。

如果您正在构建一个普通网站(AJAX仅在少数情况下使用),处理表单中的文件上传与其他输入相比有点棘手。

问题1。

如果验证失败,通常您会将用户重定向回表单,以便他可以更正数据后再次提交。这意味着用户每次都必须在他的文件系统中找到那个文件。

问题2。

另一件棘手的事情是,当您想编辑一个包含文件的资源时。如果用户将文件输入留空,您必须实现一些逻辑来决定用户是想删除文件还是保留它不变。

本包为此类情况提供了解决方案。

工作原理

提交您的表单需要先请求上传文件

  1. 首先,您在一个单独的表单中使用AJAX请求上传文件。如果上传成功,响应将包含文件的ID和URL(例如,如果您想在IE7中预览)
  2. 然后,您只需将文件的ID附加到您的原始表单(可能在隐藏的输入中)
  3. 用户提交您的原始表单,然后您处理表单。文件已位于服务器上,因此您只需处理其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文件会阻止这些文件。通过框架提供此类文件。
  • 欢迎提出建议:)